跳至主要内容
版本: 2.0.0

Haply::Inverse::Unity::VerseGrip

代表 VerseGrip 设备,处理其状态和交互。

继承于 DeviceBehaviour

公共活动

名称
设备代理设备状态改变()
VerseGrip设备状态发生变化时触发的事件。

公共职能

名称
代表 void设备代理(VerseGripdevice)
用于处理VerseGrip状态变化的代理。
bool获取按钮(VerseGripButtonbutton =VerseGripButton.Button0)
当用户按住按钮时返回 true。
boolGetButtonDown(VerseGripButtonbutton =VerseGripButton.Button0)
在用户开始按下指定按钮的帧期间返回 true。
boolGetButtonUp(VerseGripButtonbutton =VerseGripButton.Button0)
在用户开始释放指定按钮的帧期间返回 true。

受保护的功能

名称
覆盖 void添加客户端监听器(内部客户端连接 clientConnection)
覆盖 void删除客户端监听器(内部客户端连接 clientConnection)

公共财产

名称
覆盖 DeviceType设备类型
覆盖游标行为光标
四元数局部旋转
VerseGrip相对于父变换的方向。
bool是否连接
表示VerseGrip是否连接到Inverse3
int按钮计数

公共属性

名称
UnityEvent< VerseGrip >附加
VerseGrip连接到设备时触发的事件。
UnityEvent< VerseGrip >脱离
VerseGrip与设备分离时触发的事件。
UnityEvent< VerseGrip, VerseGripButton >按钮按下
按下VerseGrip按钮时触发的事件。
UnityEvent< VerseGrip, VerseGripButton >按钮向上
释放VerseGrip按钮时触发的事件。

公共活动文件

事件 DeviceStateChanged

DeviceDelegate DeviceStateChanged()

VerseGrip设备的状态发生变化时触发的事件。

请参见 ClientConfiguration.HapticFrequencyHz

该事件可用于实时响应设备方向或按钮按压的变化。在此事件中,您可以使用LocalRotationGetButtonIsAttached 等属性。

触发该事件的频率由触觉循环频率决定,可通过ClientConfiguration.HapticFrequencyHz 进行配置。

公共函数文档

函数 DeviceDelegate

delegate void DeviceDelegate(
VerseGrip device
)

用于处理VerseGrip状态变化的代理。

参数

函数 GetButton

bool GetButton(
VerseGripButton button =VerseGripButton.Button0
)

用户按住按钮时返回 true。

参数

  • 按钮要检查的按钮。

返回值如果按钮被按下则返回 true,否则返回 false。

函数 GetButtonDown

bool GetButtonDown(
VerseGripButton button =VerseGripButton.Button0
)

在用户开始按下指定按钮的帧中返回 true。

参数

  • 按钮要检查的按钮。

请参见ButtonDown,ButtonUp,DeviceStateChanged,GetButton,GetButtonUp

返回值如果本帧按下了按钮,则返回 true,否则返回 false。

该方法应在DeviceStateChanged事件回调中调用,才能正常工作。从主线程调用该方法可能会错过按钮状态改变时的帧。对于主线程,最好使用ButtonDown事件。

函数 GetButtonUp

bool GetButtonUp(
VerseGripButton button =VerseGripButton.Button0
)

在用户开始释放指定按钮的帧中返回 true。

参数

  • 按钮要检查的按钮。

请参见ButtonDown,ButtonUp,DeviceStateChanged,GetButton, GetButtonDown

返回值如果本帧释放了按钮,则返回 true,否则返回 false。

该方法应在DeviceStateChanged事件回调中调用,才能正常工作。从主线程调用该方法可能会错过按钮状态改变时的帧。对于主线程,最好使用ButtonUp事件。

受保护函数文档

函数 AddClientListeners

override void AddClientListeners(
Internal.ClientConnection clientConnection
)

函数 RemoveClientListeners

override void RemoveClientListeners(
Internal.ClientConnection clientConnection
)

公共财产文件

属性 DeviceType

override DeviceType DeviceType;

游标属性

override CursorBehaviour Cursor;

此属性覆盖基本的 DeviceBehaviour.Cursor 属性,并可安全地转换为VerseGripCursor。设置此属性也会更新 DeviceBehaviour._performSetup 标志。

属性 LocalRotation

Quaternion LocalRotation;

VerseGrip相对于父变换的方向。

设备 DeviceBehaviour.ConnectionState 必须先为 DeviceConnectionState.Opened,才能获得一致的值。

属性 IsAttached

bool IsAttached;

表示VerseGrip是否连接到Inverse3

属性 ButtonCount

static int ButtonCount;

公共属性文档

附带变量

UnityEvent< VerseGrip > Attached;

VerseGrip连接到设备时触发的事件。

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。

可变 独立式

UnityEvent< VerseGrip > Detached;

VerseGrip与设备分离时触发的事件。

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。

变量 ButtonDown

UnityEvent< VerseGrip, VerseGripButton > ButtonDown;

按下VerseGrip按钮时触发的事件。

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。

变量 ButtonUp

UnityEvent< VerseGrip, VerseGripButton > ButtonUp;

释放VerseGrip按钮时触发的事件。

该事件在主线程上派发,因此可以安全地与Unity场景对象和 UI 元素进行交互。请注意,设备状态是在单独的高频线程上更新的,因此事件发生时的状态可能与处理事件时的当前状态略有不同。