跳至主要内容

Inverse3 与 VerseGrip 光标

Haply Inverse Unity Package 引入了专为Inverse3 和 VerseGrip 设备设计的光标组件,可在 Unity 环境中实现精确的控制与交互。 这两个组件,即Inverse3 Cursor和VerseGrip Cursor,旨在根据对应的设备控制器提供的数据,动态调整游戏对象的位置和旋转。

概述​

光标组件在物理Haply 设备与 Unity 中的虚拟游戏对象之间起到桥梁作用,将设备的位置和旋转数据转换为游戏对象的移动和朝向。 这种转换使用户能够以直观的方式与虚拟环境进行交互,并通过虚拟反馈映射其物理动作。

CursorBase 类​

光标组件的核心是 CursorBase 类,它提供了 Inverse3Cursor 和 VerseGripCursor 共享的基础功能。 其中包括设备关联管理、模型实例化和可见性控制。

主要属性与方法​

  • 设备:将光标与其控制设备关联,并在运行时自动进行设置。
  • 模型预制:指定光标模型所使用的预制体(Prefab),该预制体会自动作为 ModelParent 对子对象进行实例化。
  • ModelParent:定义实例化模型预制体的父级变换(Transform)。若未设置,则默认为光标的变换。
  • 模型:直接引用场景中已有的光标模型。如果设置此选项,则跳过 ModelPrefab 的实例化。
  • HideControllerModel:控制光标模型的可见性,可根据游戏需求动态显示或隐藏。
  • 半径:如果光标模型为球体,则表示其半径,该半径由模型的网格包围盒计算得出。
  • 光滑度:PositionSmoothness 和 RotationSmoothness 提供了平滑光标位置和旋转的选项,以提升用户体验。

注意:在 Cursor 组件中正确引用光标模型至关重要,否则可能会导致意外行为。

光标

通过Haptic Rig创建的默认光标模型带有彩色圆点,分别代表三个轴:Forward(蓝色)、Up(绿色)和Right(红色)。 该设计有助于在虚拟环境中直观地观察设备的朝向。对于已校准的VerseGrip,Forward应与指向方向对齐,Up应与顶面对齐。

Inverse3 Cursor 组件​

Inverse3Cursor 专为Inverse3 设备设计,可在 Unity 中更新光标的本地位置,以反映设备的实际物理位置。

PositionSmoothness 该设置可用于调节光标移动的平滑度,通过控制光标对物理运动的响应速度来提升用户体验。

VerseGrip Cursor 组件​

VerseGripCursor 将该功能扩展至 VerseGrip 设备,并在 Unity 中更新光标的旋转,以反映设备实际的物理旋转。

useDeviceLocalSpace 设置允许在世界坐标与父对象朝向之间选择光标的对齐方式,从而提高设计的灵活性。

RotationSmoothness 设置用于控制光标旋转平滑度的参数,使开发者能够微调光标对物理 VerseGrip 方向变化的响应速度。

实现细节​

初始化时,若未分配 Model,光标组件会将指定的 ModelPrefab 作为 ModelParent 对子对象进行实例化,以确保其在场景中的可视化呈现。 这些组件会与其关联的 控制器设备 保持同步,实时调整光标的位置和旋转,以跟随设备的物理运动。

这两个组件既可以挂载在同一个 GameObject 上,同时控制其位置和旋转,也可以分别挂载到不同的对象上以适应不同的使用场景,为开发者在 Unity 中创建沉浸式触觉体验提供了多功能工具集。