一、HTC VIVE手柄按键图说明

497526-20160620202603694-694352586.png

1 - 菜单键

6 - 系统键(按下后手柄断开连接,再次按下手柄再次连接上)

7 - 扳机键

8 - 握持键

9 - 触摸板键

二、按键的监听方式

   1、按键监听方式一:(SteamVR的方式,封装了OpenVR)

  (1)点击触发:通过Device.GetPressDown / GetPressUp / GetPress获取按键事件

  (2)触摸触发:通过device .GetTouchDown / GetTouchUp / GetTouch获取按键事件

   2、按键监听方式二:(OpenVR的方式,偏底层)

  通过controllerState.ulButtonPressed & (SteamVR_Controller.ButtonMask.Trigger)获取按键的按下、松开两种状态

spacer.gif 

或者:

注:m_State、m_PrevState分别表示:当前帧状态、前一帧状态

获取按下时,触摸板的值

 

获取松开时,触摸板的值(这里必须使用前一帧的状态,因为松开时,当前帧的触摸的值为0)

问题:按下时,没有获取到当前帧触摸板的值!

猜测原因:获取值的Update方法在更新状态Update的方法之前执行了,更新状态的Update方法执行后,才能获取触摸板的值

解决方法:如果不想修改脚本执行顺序的话,可以使用LateUpdate


触摸

  • 适用于触摸板键

  • 适用于扳机键(和点按类似,只是键程更