Skip to main content
 首页 » 资源教程

htcvive 手柄抓取物体一个物体

2016年08月17日 21:32:5520420

 htc vive 手柄抓取物体一个物体。把这个带挂在Controller上面就可以了。

[csharp] view plain copy  

  1. public class WandController : MonoBehaviour {  

  2.   

  3.     private Valve.VR.EVRButtonId gripButtion = Valve.VR.EVRButtonId.k_EButton_Grip;  

  4.     private Valve.VR.EVRButtonId triggerButtion = Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger;  

  5.     public GameObject pickUp;  

  6.     private SteamVR_Controller.Device controller { get { return SteamVR_Controller.Input((int)trackedObject.index); } }  

  7.   

  8.     private SteamVR_TrackedObject trackedObject;  

  9.   

  10.     void Start()  

  11.     {  

  12.         trackedObject = GetComponent<SteamVR_TrackedObject>();  

  13.     }  

  14.     void Update()  

  15.     {  

  16.         if (controller == null)  

  17.         {  

  18.             Debug.Log("controller 不存在");  

  19.         }  

  20.   

  21.         if (controller.GetPressDown(triggerButtion) && pickUp !=null)  

  22.         {  

  23.             Debug.Log("pressDown Trigger");  

  24.             pickUp.transform.parent = this.transform;  

  25.             pickUp.GetComponent<Rigidbody>().isKinematic = true;  

  26.         }  

  27.   

  28.         if (controller.GetPressUp(triggerButtion) && pickUp != null)  

  29.         {  

  30.             Debug.Log("Press Up Trigger");  

  31.             pickUp.transform.parent = null;  

  32.             pickUp.GetComponent<Rigidbody>().isKinematic = false;  

  33.         }  

  34.     }  

  35.   

  36.     private void OnTriggerEnter(Collider other)  

  37.     {  

  38.         Debug.Log("OnTriggerEnter");  

  39.         pickUp=other.gameObject;  

  40.     }  

  41.   

  42.     private void OnTriggerExit(Collider other)  

  43.     {  

  44.         Debug.Log("OnTriggerExit");  

  45.         pickUp = null;  

  46.     }  

  47. }  


评论列表暂无评论
发表评论