Unity Hololens2开发|(十)MRTK3空间操作 ObjectManipulator (对象操控器)
简介:
Unity Hololens2开发|(十)MRTK3空间操作 ObjectManipulator (对象操控器)
1.前言
- ObjectManipulator 允许使用任何输入设备或形式直观地操作 3D 空间中的对象。 它执行与 XRI XRGrabInteractable 类似的任务,但提供其他功能以及特定于混合现实的交互。 虽然 XRGrabInteractable 与交互器完全兼容(反之亦然)。
- 在 MRTK v2 中,ObjectManipulator 本身处理不同类型的输入的大部分复杂逻辑和数学。 必须为每个类型的交互维护单独的代码路径,因此在引入新类型的交互时会降低灵活性。 在 MRTK3 中,交互器负责具体说明如何将特定类型的输入转换为操作。 ObjectManipulator 只侦听这些交互器,并将相关转换应用于对象。 因此,MRTK3 中的 ObjectManipulator 在作用域内要更简单且更小得多
2.n 手操作
- ObjectManipulator 支持任意数量的参与交互器,允许跨单手、双手甚至 n 手操作的可泛化交互行为。 通常,所有参与交互器的 attachTransforms 的几何质心用于多手交互。 作为可交互的 XRI,它与任何类型的提交表现良好的附加转换的交互器兼容。
- 如果不想允许多手操作,请将 XRI Selection Mode 设置为 Single。 我们在检查器中将此属性的别名设置为更具体的名称 Multiselect Mode,以避免与 MRTK Selection Mode 混淆,后者用于指定可交互对象是否可切换。
3.约束
4.操作逻辑注入
- 开发人员无需为脚本设置子类或以其他方式修改脚本本身即可自定义 ObjectManipulator 的操作行为。 只需编写一个新的 ManipulationLogic ,并使用 属性在检查器 ManipulationLogicTypes 中指定类型。
- 同样,可以通过编写 的新实现 ITransformSmoothingLogic 并在检查器 TransformSmoothingLogicType 中使用 属性指定类型来自定义平滑行为。
5.属性面板解析