混合现实工具包 (MRTK) 组件与 Unity ScriptableObjects
MRTK-Unity 是由 Microsoft 驱动的项目,它提供了一系列组件和功能来加速 Unity 中的跨平台 MR 应用开发。 你将在场景中使用 MRTK 快速构建具有风力涡轮机 3D 模型的沉浸式交互。 具体而言,我们将在此项目的Microsoft.MixedReality.Toolkit.UI命名空间中使用以下 MRTK 对象类:
ObjectManipulator:
ObjectManipulator
脚本让对象变得可移动、可缩放和可旋转,这些操作可通过一只或两只手来实现。 该脚本同时适用于 HoloLens 的手势输入和沉浸式头戴显示设备的运动控制器输入。BoundsControl:BoundsControl 允许转换对象(旋转和缩放)并在对象周围绘制一个多维数据集,以直观显示用户触发转换操作的可能性。 BoundsControl 提供缩放和旋转句柄,可用于对象的远近交互操作。 它进一步为更改缩放和材料的缩放和旋转句柄提供接近度影响。
NearInteractionGrabbable:可以将 NearInteractionGrabbable 组件添加到其上有可碰撞物体的任意 GameObject,以使该可碰撞物体变得可从近距离抓取。 然后,所有
IMixedRealityNearPointer
会将指针事件调度到可从近距离抓取的最接近对象。 此外,当修饰对象为靠近指针的最接近对象时,靠近指针将发送重点进入和退出事件RotationAxisConstraint:可用于将涡轮机限制为仅围绕 Y(向上)轴旋转
涡轮机 Prefab
每个数字孪生涡轮机 Prefab 在 Unity 项目中都有相应的ScriptableObject
,用于存储从 Microsoft Azure 接收的数据。 大致来说,ScriptableObjects
是可在整个场景和应用程序运行中全局保存数据的轻型对象。 风车 Prefab 对此ScriptableObject
有一个引用,当数据更新时,会触发事件来通知资产。 查看以下 Prefab,了解随附的 MRTK 组件和 Azure 数据的接收位置:
导航到“资产”“艺术品”“Prefab”以查看数字孪生涡轮机>>。 在风车的“检查器”中,可以看到有一个 LOD 组、前面所述的 MRTK 组件,以及附加到此 prefab 的其他脚本。
可在“资产”>“脚本化对象”>“涡轮机位置数据”中找到所模拟涡轮机的对应脚本化对象。