Skip to main content
AR论坛
 首页 » 资源教程

Unity +HTC VIVE 虚拟现实开发— 手柄控制

2016年08月24日 20:50:565640
  1. 写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会。所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中有什么错误或者大家有什么更好的方案也请大家指出,大家互相学习,哈哈。</p><p>好了直接上代码。</p>  

[html] view plain copy
  1. </pre><pre name="code" class="html"><pre name="code" class="csharp">using UnityEngine;  

  2. using System.Collections;  

  3.   

  4. public class shoubingkongzhi : MonoBehaviour {  

  5.     /// <summary>  

  6.     /// 手柄  

  7.     /// </summary>  

  8.     SteamVR_TrackedObject tracked;  

  9.   

  10.   

  11.   

  12.     void Awake()  

  13.     {  

  14.         //获取手柄  

  15.         tracked = GetComponent<SteamVR_TrackedObject>();  

  16.   

  17.     }  

  18.   

  19.     // Update is called once per frame  

  20.     void FixedUpdate()  

  21.     {  

  22.         var device = SteamVR_Controller.Input((int)tracked.index);  

  23.   

  24.         if (device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))  

  25.         {  

  26.             Debug.Log("按下圆盘");  

  27.         }  

  28.         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))  

  29.         {  

  30.           

  31.             Debug.Log("按下扳机键");  

  32.         }  

  33.         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Grip))  

  34.         {  

  35.           

  36.             Debug.Log("按下手柄侧键");  

  37.         }  

  38.         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))  

  39.         {  

  40.           

  41.             Debug.Log("按下手柄菜单键");  

  42.         }  

  43.         else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))  

  44.         {  

  45.   

  46.             Debug.Log("按下手柄菜单键");  

  47.         }  

  48.           

  49.     }  

  50. }  


Debug.Log("按下手柄菜单键");}}}


[html] view plain copy
  1. 以上都是HTC VIVE手柄中按键按下的代码。其他还有:  

[html] view plain copy
  1. 按键松开—device.GetPressUp(SteamVR_Controller.ButtonMask.Trigger);  

[html] view plain copy
  1. 按键长安—device.GetPress(SteamVR_Controller.ButtonMask.Trigger);  

[html] view plain copy
  1. 按键按下还有另一种方式,但是我自我感觉用着很别扭,没上述的好。device.GetTouchDown(SteamVR_Controller.ButtonMask.ApplicationMenu);  

[html] view plain copy
  1. 其他用法与GetPressDown()类似。  


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