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