跳到主要内容

Inverse3 与 VerseGrip 光标

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

概述​

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

CursorBase 类​

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

主要属性和方法​

  • Device:将光标与其控制设备相关联,并在运行时自动设置。
  • ModelPrefab:指定光标模型所使用的预制体(Prefab),该预制体会自动作为 ModelParent 的子对象进行实例化。
  • ModelParent:定义实例化的模型预制体的父级变换(Transform)。若未设置,则默认为光标的变换。
  • Model:直接引用场景中已有的光标模型。若设置该项,则跳过 ModelPrefab 的实例化。
  • HideControllerModel:控制光标模型的可见性,可根据游戏需求动态显示或隐藏。
  • Radius:若光标模型为球体,则表示其半径,由模型的网格包围盒计算得出。
  • Smoothness: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 中创建沉浸式触觉体验提供了多功能工具集。