Inverse3 以及 VerseGrip 控制器
Inverse3 VerseGrip 控制器专为通过Device Mapper将各物理设备与 Unity 游戏对象无缝集成而设计。 通过利用高频传感器数据,这些组件可在虚拟环境中实现精准且响应迅速的控制。 其功能在逻辑和性能方面均经过精心协调,从而确保了统一的用户体验。
这些控制器是Haply Inverse Unity Package的核心组成部分,使开发者能够利用Haply的高级硬件功能,构建沉浸式且可交互的VR应用程序。 它们能够熟练处理设备本地坐标与游戏世界空间参数之间的转换,从而确保交互的真实性和沉浸感。
Inverse3 控制器
Inverse3 控制器组件在将Inverse3 设备与相应游戏对象连接方面发挥着关键作用。 它利用高频传感器数据,将设备的物理运动准确地反映在虚拟空间中。其主要功能如下:
Inverse3 主要功能和 API
-
设备状态变化事件:作为Inverse3 控制器的核心,该事件在每个触觉帧中触发,提供有关光标位置和速度的实时更新。 对于需要持续跟踪设备状态或实现实时控制命令的应用程序而言,该事件必不可少。
-
位置和速度查询:
CursorPosition,CursorVelocity,CursorLocalPosition,CursorLocalVelocity通过提供诸如...之类的属性,可以访问设备的当前状态,这对将物理运动精确映射到虚拟空间至关重要。 -
力与位置控制:
SetCursorForce,SetCursorPosition通过提供此类方法,可以直接操控设备,开发人员还可以施加力或设置位置,从而增强虚拟交互体验。
Inverse3 查看检查器

- 设备: 选择特定设备。
<refresh device list>点击后,将在编辑器模式下使用 Device Mapper 导入设备,并将所有 设备 更新下拉菜单。 - 手性:根据手柄结构对设备进行筛选。
- 光标:与Inverse3Cursor对象关联,并随设备位置的更新而同步移动。
- 正文:与表示设备物理本体方向的Inverse3Body相关联。
- 坐标转换:定义设备光标位置和机身方向如何转换为游戏世界坐标,从而确保映射的准确性和可自定义性。
- 光标数据:显示光标在游戏世界中的位置。
- 设备数据:显示设备的实时输入和输出数据。
- 活动: 这是在主线程中触发的 Unity 事件,用于支持场景交互和 UI 更新。
- 就绪:当设备准备好使用时,会发送信号。
- ControlModeChanged:表示设备的控制模式(例如:力控制或位置控制)已发生变化。
- PowerSupplyStatusChanged:通知设备电源供应状态已发生变化。

Inverse3 吉兹莫
以可视化方式显示设备的位置以及光标可到达的最大距离,并根据手柄的配置用不同颜色进行区分。
- 蓝色表示适用于左手的设备。
- 红色表示适用于右手的设备。
- 对于未指定手柄配置的设备,在运行时确定配置之前,将同时显示两种颜色。

VerseGrip 控制器
Inverse3 与控制器类似,VerseGrip 控制器会将 VerseGrip 设备分配给已连接的游戏对象。 该组件对于利用 VerseGrip 的独特输入功能至关重要。
VerseGrip 的主要功能及 API
-
设备状态变化事件:用于通知设备方向及按钮状态的变化,并针对用户输入和设备方向提供即时反馈,从而支持交互式应用程序。
-
按钮交互: 用于检测按钮交互的方法(
GetButton,GetButtonDown,GetButtonUp) 以便将输入机制与触觉线程关联起来。 -
连接状态: 监控与其他设备的连接状态,
Attached以及Detached通过事件发送信号。这对于依赖设备物理构成的应用程序非常有用。
查看 VerseGrip 检查器

- 设备: 选择特定设备。
<refresh device list>点击后,客户端将在编辑器模式下激活,并且所有 设备 下拉菜单正在刷新。 - 光标:与VerseGripCursor对象关联,并会根据设备方向的更新而旋转。
- 坐标转换:定义设备方向如何转换为游戏世界中的方向,从而确保映射的准确性和可定制性。
- 光标数据:显示游戏世界中光标的旋转值。
- 设备数据:显示设备的本地旋转值、按钮状态和连接状态。
- 活动: 为了支持场景或 UI 交互,会在主线程上触发 Unity 事件。
- 就绪:当设备准备好使用时,会发送信号。
- Button Down:发生在按钮被按下时。
- Button Up:当手离开按钮时触发。
- 附图:显示设备连接到 Inverse3 时的状态。
- 已断开:表示设备已从 Inverse3 上断开。
