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.属性面板解析

属性 描述
HostTransform 要操作的转换。默认为组件的对象。
AllowedManipulations 应该允许何种操纵?
AllowedInteractionTypes 允许哪种类型的交互操作此对象?
Multiselect Mode 允许单手还是多手操作?
RotationAnchorNear 物物体单手接近时的旋转行为
RotationAnchorFar 物体单手远距离旋转行为
MoveLerpTime 输入数量代表的数量平滑适用于运动。平滑0表示没有平滑。最大值意味着不改变值。
RotateLerpTime 输入表示要应用到旋转的平滑量的值。平滑0表示没有平滑。最大值意味着不改变值。
ScaleLerpTime 输入表示平滑量的值以应用于刻度。平滑0表示没有平滑。最大值意味着不改变值。
TransformSmoothingLogicType 用于变换间平滑的 ITransformSmoothingLogic 的具体类型
manipulationLogicTypes 用于操作的操作逻辑的具体类型
EnableConstraints 启用或禁用此组件的约束支持。启用后,转换更改将由链接的约束管理器进行后期处理。
ConstraintsManager 约束管理器槽,以便在操作对象时启用约束。
SmoothingNear 帧速率独立平滑近相互作用。注意,使近平滑可能被认为是“disconnected”从手。
SmoothingFar 帧速率独立平滑用于远距离交互。远距离平滑默认启用。
ManipulationStarted 开始操作手柄时触发。
ManipulationEnded 结束操作手柄时触发。
相关文章
|
3月前
|
算法 安全 图形学
Unity Hololens2开发|(十一)MRTK3 Solver(求解器)
Unity Hololens2开发|(十一)MRTK3 Solver(求解器)
|
3月前
|
Go 图形学
Unity Hololens2开发|(九)MRTK3空间操作 ConstraintManager(约束)
Unity Hololens2开发|(九)MRTK3空间操作 ConstraintManager(约束)
|
4月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
50 0
|
4月前
|
人工智能 自然语言处理 区块链
【Unity 3D】元宇宙概念、应用前景、价值链等概述
【Unity 3D】元宇宙概念、应用前景、价值链等概述
52 0
|
4月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
38 0
|
4月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
39 0
|
4月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
54 0
|
4月前
|
vr&ar 开发工具 图形学
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
88 0
|
4月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
140 0
|
4月前
|
开发框架 数据可视化 前端开发
【Unity 3D】GameFramework、QFramework框架简介及应用实战(超详细 附源码)
【Unity 3D】GameFramework、QFramework框架简介及应用实战(超详细 附源码)
129 0