一、项目资源的导入##
二、项目流程##
1.导入地形。
2.SteamVR导入。
3.弓箭的模型的导入与在手柄位置调节。
左手拿弓,右手拿箭,调节合适的位子.调节左右手柄的位置,拿起弓箭自然.
public class GameManagerPer : MonoBehaviour {
public static GameManagerPer _instance;//单列模式
public GameObject currentArrow;
public GameObject prefabArrow;//箭的预支物
public SteamVR_TrackedObject trackObject;//获取输入设备
// 拿到弓弦在弓位置信息
public GameObject ArrowStartPoint;
// 复制的弓弦位置
public GameObject StringStartPoint;
// 真正意义上的弓弦
public GameObject StringWithpoint;
private void Awake()
{
_instance = this;
}
void Start () {
trackObject = GetComponent<SteamVR_TrackedObject>();
}
void Update () {
CreateArrow();
}
public void CreateArrow()//创建箭的方法
{
if (currentArrow==null)
{
currentArrow = Instantiate(prefabArrow);
currentArrow.transform.parent = trackObject.transform;
currentArrow.transform.localPosition = new Vector3(0, 0, 0.3f);//箭在右手柄的合适位置,调节结果
currentArrow.transform.localRotation = Quaternion.identity;
}
}
//调整箭头
public void StartArraw()
{
currentArrow.transform.parent = ArrowStartPoint.transform;
currentArrow.transform.localPosition = Vector3.zero;
currentArrow.transform.localRotation = Quaternion.identity;
}
}
4.弓的位置调节。
public class ArrowPerson : MonoBehaviour {
void Start () {
}
void Update () {
}
private void OnTriggerStay(Collider other)//触发事件
{
print("123");
StartTrigglerArrow();
}
public void StartTrigglerArrow()//一触发就调用,把在右手柄的箭的位置放在一个我们想要的位置
{
var device = SteamVR_Controller.Input((int)GameManagerPer._instance.trackObject.index);
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger))
{
GameManagerPer._instance.StartArraw();
}
}
}