混合现实工具包 (MRTK) 组件与 Unity ScriptableObjects

已完成

MRTK-Unity 是由 Microsoft 驱动的项目,它提供了一系列组件和功能来加速 Unity 中的跨平台 MR 应用开发。 你将在场景中使用 MRTK 快速构建具有风力涡轮机 3D 模型的沉浸式交互。 具体而言,我们将在此项目的Microsoft.MixedReality.Toolkit.UI命名空间中使用以下 MRTK 对象类:

  • ObjectManipulatorObjectManipulator脚本让对象变得可移动、可缩放和可旋转,这些操作可通过一只或两只手来实现。 该脚本同时适用于 HoloLens 的手势输入和沉浸式头戴显示设备的运动控制器输入。

  • BoundsControl:BoundsControl 允许转换对象(旋转和缩放)并在对象周围绘制一个多维数据集,以直观显示用户触发转换操作的可能性。 BoundsControl 提供缩放和旋转句柄,可用于对象的远近交互操作。 它进一步为更改缩放和材料的缩放和旋转句柄提供接近度影响。

  • NearInteractionGrabbable:可以将 NearInteractionGrabbable 组件添加到其上有可碰撞物体的任意 GameObject,以使该可碰撞物体变得可从近距离抓取。 然后,所有IMixedRealityNearPointer会将指针事件调度到可从近距离抓取的最接近对象。 此外,当修饰对象为靠近指针的最接近对象时,靠近指针将发送重点进入和退出事件

  • RotationAxisConstraint:可用于将涡轮机限制为仅围绕 Y(向上)轴旋转

    Unity 场景窗口的屏幕截图,其中可看到风力涡轮机 Prefab 且在“检查器”中已选择风力涡轮机 Prefab。

涡轮机 Prefab

每个数字孪生涡轮机 Prefab 在 Unity 项目中都有相应的ScriptableObject,用于存储从 Microsoft Azure 接收的数据。 大致来说,ScriptableObjects是可在整个场景和应用程序运行中全局保存数据的轻型对象。 风车 Prefab 对此ScriptableObject有一个引用,当数据更新时,会触发事件来通知资产。 查看以下 Prefab,了解随附的 MRTK 组件和 Azure 数据的接收位置:

  1. 导航到“资产”“艺术品”“Prefab”以查看数字孪生涡轮机>>。 在风车的“检查器”中,可以看到有一个 LOD 组、前面所述的 MRTK 组件,以及附加到此 prefab 的其他脚本。

    Unity 场景窗口的屏幕截图,其中可看到“检查器”中的风力涡轮机 ScriptableObject。

  2. 可在“资产”>“脚本化对象”>“涡轮机位置数据”中找到所模拟涡轮机的对应脚本化对象。

    Unity 场景窗口的屏幕截图,其中可看到风力涡轮机 ScriptableObject。