跳过至主要内容

Inverse3 以及 VerseGrip 的光标

Haply Inverse Unity 套件包含专为Inverse3 设备和 VerseGrip 设备设计的专用光标组件,可在 Unity 环境中实现精准的控制与交互。 这些组件(Inverse3 光标和 VerseGrip 光标)旨在根据从相应设备控制器接收到的数据,动态调整游戏对象的位置和旋转。

概述​

光标组件起到连接物理设备Haply 与 Unity 中的虚拟游戏对象的作用,将设备的位移和旋转数据转换为游戏对象的移动和朝向。 通过这种转换,用户可以直观地与虚拟环境进行交互,物理动作会在虚拟空间中以相应的反应形式呈现出来。

CursorBase 类​

光标组件的核心是 CursorBase 在课堂上,Inverse3Cursor 和 VerseGripCursor 提供两者共有的基本功能。 其中包括设备关联、模型实例化以及显示控制的管理。

主要属性与方法​

  • 设备:与控制光标的设备相关联。该设置将在运行时自动完成。
  • 模型预制: 指定用于光标模型的预制件。该预制件是 ModelParent 将作为其子类自动实例化。
  • ModelParent:定义实例化模型预制件的父变换。如果未设置,则默认使用光标的变换。
  • 模型: 直接引用场景中的现有光标模型。设置后,ModelPrefab 不会进行实例化。
  • HideControllerModel:控制光标模型的显示状态。可根据游戏玩法的需求,动态地在显示和隐藏之间切换。
  • 半径:表示当光标模型为球体时的半径。该值根据模型的网格边界计算得出。
  • 光滑度: PositionSmoothness 和 RotationSmoothness 该功能提供了用于使光标位置和旋转更加流畅的选项,从而提升用户体验。

注:在光标组件中正确引用光标模型,对于避免出现意外行为至关重要。

光标

在Haptic Rig中创建的默认光标模型上,有三个代表不同轴向的彩色圆点:Forward(蓝色)、Up(绿色)和Right(红色)。 这种设计有助于直观地掌握设备在虚拟环境中的朝向。对于已校准的VerseGrip,应将Forward对准指向方向,将Up对准顶部。

Inverse3 光标组件​

Inverse3Cursor 该功能专为Inverse3 设备设计,用于更新Unity中光标的本地位置,使其反映设备的物理位置。

PositionSmoothness 在设置中,您可以调整光标移动的平滑度。通过控制光标对物理动作的响应程度,可以提升用户体验。

VerseGrip Cursor 组件​

VerseGripCursor 该功能可扩展 VerseGrip 设备的功能,并根据设备的物理旋转情况,更新 Unity 中的光标旋转方向。

useDeviceLocalSpace 通过设置,可以选择是与世界方向还是与父对象方向对齐,从而提高了设计的灵活性。

RotationSmoothness 该设置用于控制光标旋转的平滑度。通过此设置,开发人员可以精细调整光标对物理 VerseGrip 方向变化的响应程度。

实现细节​

在初始化时,Model 如果未分配,则光标组件将使用指定的 ModelPrefab を ModelParent 将其作为子对象实例化,以确保在场景中的视觉呈现。 这些组件与相关的 设备控制器 与之同步,并根据物理设备的移动实时调整光标的位置和旋转。

既可以将这两个组件附加到同一个 GameObject 上以控制其位置和旋转,也可以根据具体用途将它们分别附加到不同的 GameObject 上。这使得开发者能够利用这些灵活的工具,在 Unity 中创建身临其境的触觉体验。