OVERVIEW
控制器脚本是处理游戏控制器发出的事件的。
控制器脚本是附在[camerarig]
预制件上并为控制器上的每个按钮添加了事件侦听器(不包括menu按钮,这个按钮事件不能被重写,只用于steam平台)。
当一个控制器按钮被按下的时候,脚本会发出事件来表示按钮已被按下,这就允许其他任何脚本不需要实现任何关于控制器的逻辑就可以监听这个事件。当按钮被松开的时候,同样也会发出事件来表示按钮已经被松开。
INSPECTOR PARAMETERS
- Point Toggle Button:将激光指针打开/关闭的按钮
- Point Set Button:从指针的光标位置设置目标标记的操作的按钮
- Grab Toggle Button:抓取物体的按钮
- Use Toggle Button:使用物体的按钮
- UI Click Button:触发UI元素点击事件的按钮
- Menu Toggle Button:显示游戏菜单界面的按钮
- Axis Fidelity:在轴变化量敏感度,默认值1,任何高于2的值都会导致过于敏感的结果
- Triggle Click Threshold:扳机键按下前需要按下的距离水平
CLASS VARIABLES
- public enum ButtonAlias - 按钮类型
- Trigger_Hairline - Trigger按钮按下的幅度超过阀值
- Trigger_Touch - Trigger按钮按下一点点
- Trigger_Press - Trigger按钮按下一半多
- Trigger_Click - Trigger按钮点击按下
- Grip - grip按钮被按下
- TouchPad_Touch - 触摸板被触摸
- TouchPad_Press - 触摸板被按下
- Application_Menu - 应用菜单按钮被按下
- undefined
- public bool triggerPressed - 如果trigger按钮被按下超过一半则会返回true,默认是false
- public bool triggerTouched
- public bool triggerHairlinePressed
- public bool triggerClicked
- public bool triggerAxisChanged
- public bool applicationMenuPressed
- public bool touchpadPressed
- public bool touchpadTouched
- public bool touchpadAxisChanged
- public bool gripPressed
- public bool pointerPressed
- public bool grabPressed
- public bool usePressed
- public bool uiClickPressed
- public bool menuPressed
CLASS EVENTS
- TriggerPressed
- TriggerReleased
- TriggerTouchStart
- TriggerTouchEnd
- TriggerHairlineStart
- TriggerHairlineEnd
- TriggerClicked
- TriggerUnclicked
- TriggerAxisChanged
- ApplicationMenuPressed
- ApplicationMenuReleased
- GripPressed
- GripReleased
- TouchpadPressed
- TouchpadReleased
- TouchpadTouchStart
- TouchpadTouchEnd
- TouchpadAxisChanged
- AliasPointerOn
- AliasPointerOff
- AliasPointerSet
- AliasGrabOn
- AliasGrabOff
- AliasUseOn
- AliasUseOff
- AliasMenuOn
- AliasMenuOff
- AliasUIClickOn
- AliasUIClickOff
- ControllerEnabled
- ControllerDisabled
UNITY EVENT
给VRTK_ControllerEvents
Object添加VRTK_ControllerEvents_UnityEvents
组件来允许访问unityevents
。
- OnTriggerPressed
- OnTriggerReleased
- OnTriggerTouchStart
- OnTriggerTouchEnd
- OnTriggerHairlineStart
- OnTriggerHairlineEnd
- OnTriggerClicked
- OnTriggerUnclicked
- OnTriggerAxisChanged
- OnApplicationMenuPressed
- OnApplicationMenuReleased
- OnGripPressed
- OnGripReleased
- OnTouchpadPressed
- OnTouchpadReleased
- OnTouchpadTouchStart
- OnTouchpadTouchEnd
- OnTouchpadAxisChanged
- OnAliasPointerOn
- OnAliasPointerOff
- OnAliasPointerSet
- OnAliasGrabOn
- OnAliasGrabOff
- OnAliasUseOn
- OnAliasUseOff
- OnAliasMenuOn
- OnAliasMenuOff
- OnAliasUIClickOn
- OnAliasUIClickOff
- OnControllerEnabled
- OnControllerDisabled
EVENT PAYLOAD
- uint controllerIndex - 被使用的控制器索引
- float buttonPressure - 被施加到按钮上的压力的量。0f到1F。
- Vector2 touchpadAxis - 触摸板被触摸的位置,(0,0)到(1,1)。
- float touchpadAngle - 触摸板的触摸位置的角度,顶上是0°,地下是180°,以此类推,0°到360°。
CLASS METHODS
GetVelocity()
public Vector3 GetVelocity()
- Parameters
- none
- Returns
- Vector3 - 一个包含当前现实世界物理控制器速度的3维向量。
这个方法可以获取控制器的在当前现实世界的速度。可以用来确定控制器被晃动的速度和方向。
GetTouchpadAxis()
public Vector2 GetTouchpadAxis()
- Parameters
- none
- Returns
- Vector2 - 触摸板被触摸的位置信息,从(0,0)到(1,1)。X表示触摸板水平方向,Y表示触摸板垂直方向。
GetTouchpadAxisAngle()
public float GetTouchpadAxisAngle()
- Parameters
- none
- Returns
- float - 触摸板被触摸角度信息,顶上0°,底下180°,取值0°-360°。
GetTriggerAxis()
public float GetTriggerAxis()
- Parameters
- none
- Returns
- float - trigger按钮被按下的程度,取值0f到1f。
GetHairTriggerDelta()
public float GetHairTriggerDelta()
- Parameters
- none
- Returns
- float - trigger按钮从初始位置到当前位置的力度变化值
AnyButtonPressed()
public bool AnyButtonPressed()
- Parameters
- none
- Returns
- bool - 当有任何按钮被按下的时候返回值为true
IsButtonPressed()
public bool IsButtonPressed(ButtonAlias button)
- Parameters
- ButtonAlias button - 检查按钮是否被按下
- Returns
- bool - 如果该按钮被按下的话返回值为true
EXAMPLE
例子: VRTK/Examples/002_Controller_Events
,VRTK/Examples/Resources/Scripts/VRTK_ControllerEvents_ListenerExample.cs