Inverse3 以及 VerseGrip 控制器
Inverse3 和VerseGrip这两款控制器经过专门设计,能够将各自的物理设备与Unity中的GameObject无缝连接。这一连接通过Device Mapper实现。 借助高频传感器数据,这些组件可在虚拟环境中实现精准且响应迅速的操控。 它们的功能在逻辑和性能方面都经过了和谐的协调,从而确保了统一的用户体验。
这些控制器构成了Haply Inverse Unity Package的基础,使开发者能够利用Haply 硬件的先进功能,创建沉浸式且交互式的VR应用程序。 它们能够精确地将设备的本地坐标转换为游戏世界的空间参数,从而确保交互体验真实且引人入胜。
Inverse3-控制器
Inverse3 控制器组件对于将Inverse3 设备与相应的GameObject建立关联至关重要。 它利用高频传感器数据,精确地将设备在虚拟空间中的物理运动映射出来。其主要功能包括:
的重要功能和 APIInverse3
-
“设备状态已更改”事件: 这是Inverse3 控制器的核心,该事件在每个触觉帧中触发,并提供光标位置和速度的实时更新。 对于需要持续跟踪设备状态或实现实时控制命令的应用程序而言,该事件不可或缺。
-
获取位置和速度: 提供以下功能,例如
CursorPosition,CursorVelocity,CursorLocalPositionundCursorLocalVelocity用于获取设备的当前状态。这些数据对于将物理动作精确映射到虚拟空间至关重要。 -
力与位置控制: 提供诸如以下方法:
SetCursorForceundSetCursorPosition用于直接控制设备。开发人员可以借此施加力或设定位置,从而提升虚拟交互体验。
检查器视图来自Inverse3

- 设备: 选择特定设备。点击
<refresh device list>使用设备映射器在编辑模式下获取设备,并更新所有 设备-下拉菜单-。 - 手性:根据设备的手性配置进行筛选。
- 光标:与对象Inverse3Cursor 相关联,该对象会随设备位置的更新而同步移动。
- 正文:与Inverse3Body 相关联,该对象表示设备在空间中的物理方向。
- 坐标转换:确定如何将光标位置和设备方向转换到游戏世界中。这样可以确保转换的精确性和可定制性。
- 光标数据:显示光标在游戏世界中的位置。
- 设备数据:实时显示设备的输入和输出数据。
- 事件: Unity 事件在主线程中触发,并支持场景交互或 UI 更新。
- 就绪:表示设备已准备就绪。
- ControlModeChanged:显示设备控制模式的变更(例如,力控制或位置控制)。
- PowerSupplyStatusChanged:通知设备电源状态发生变化。

Gizmos 来自Inverse3
提供有关设备位置和光标最大可达距离的视觉提示。颜色编码根据惯用手而定。
- 蓝色标记表示左撇子专用设备。
- “Rot”表示右手用的设备。
- 对于未指定手性的设备,在运行时确定手性之前,将显示两种颜色。

VerseGrip-Controller
与Inverse3 控制器类似,VerseGrip控制器会将一个VerseGrip设备分配给一个关联的GameObject。 若要使用VerseGrip的独特输入功能,此组件必不可少。
VerseGrip 的重要功能和 API
-
“设备状态已更改”事件:通知设备方向和按键状态的变更。该事件通过及时反馈用户输入和设备方向信息,为交互式应用程序提供支持。
-
按键交互: 提供用于检测按键交互的方法(
GetButton,GetButtonDown,GetButtonUp),从而在触觉线程中实现了输入机制。 -
连接状态: 监控其与其他设备的连接状态,并通过事件进行通知
AttachedundDetached. 这对依赖于设备物理配置的应用程序非常有用。
VerseGrip 的检查视图

- 设备: 选择特定设备。点击
<refresh device list>将客户端切换至编辑器模式,并刷新所有 设备-下拉菜单-。 - 光标:与对象VerseGripCursor 相关联,该对象会根据设备的方向更新而旋转。
- 坐标转换:确定如何将设备的朝向转换为游戏世界中的朝向。这样可以确保转换的精确性和可调整性。
- 光标数据:显示光标在游戏世界中的旋转角度。
- 设备数据:显示设备的本地旋转角度、按键状态和连接状态。
- 事件: 在主线程中触发 Unity 事件,以支持场景或 UI 交互。
- 就绪:表示设备已准备就绪。
- 按键按下:当按下某个按键时触发。
- 按键释放:当按键被释放时触发。
- 已连接:显示设备何时与Inverse3 连接。
- 断开连接:显示设备何时与Inverse3 断开连接
