操作处理程序 — MRTK2
使用 ManipulationHandler 脚本可以通过一只或两只手来移动、缩放和旋转对象。 可以限制操作,使其只允许某些种类的变换。 该脚本适用于各种类型的输入,包括 HoloLens 2 关节手输入、手部射线、HoloLens(第一代)手势输入,以及沉浸式头戴显示设备运动控制器输入。
如何使用操作处理程序
将 ManipulationHandler
脚本组件添加到 GameObject。 另外,确保向对象添加一个与其可抓取边界匹配的碰撞体。
为使对象能够响应近距关节手输入,还需要添加 NearInteractionGrabbable
脚本。
检查器属性
宿主变换:要拖动的变换。 默认为组件的对象。
操作类型:指定是可以使用一只手来操作对象、两只手来操作对象,还是这两种方式都可以。
- 仅单手
- 仅双手
- 一只和两只手
双手操控类型
- 缩放:仅允许缩放。
- 旋转:仅允许旋转。
- 移动缩放:允许移动和缩放。
- 移动旋转:允许移动和旋转。
- 旋转缩放:允许旋转和缩放。
- 移动旋转缩放:允许移动、旋转和缩放。
允许远距操作:指定是否可以使用远距交互通过指针来执行操作。
近距单手旋转模式:指定使用单手/控制器近距抓取对象时的对象行为。
远距单手旋转模式:指定使用单手/控制器远距抓取对象时的对象行为。
单手旋转模式选项:指定使用单手抓取对象时如何旋转对象。
- 保持原始旋转:在移动对象时不旋转它
- 保持向用户旋转:保持原始的沿 X/Y 轴向用户旋转方式
- 保持沿重力方向向用户旋转:保持原始的向用户旋转方式,但使对象垂直。 对于具有边界控件的对象很有用。
- 面向用户:确保对象始终面向用户。 适用于平板/面板。
- 背对用户:确保对象始终背对用户。 对于后向配置的平板/面板很有用。
- 围绕对象中心旋转:仅适用于关节手/控制器。 使用手部/控制器旋转来旋转对象,但围绕对象中心点旋转。 可用于在某种距离进行检查。
- 围绕抓取点旋转:仅适用于关节手/控制器。 旋转对象,如同它被手部/控制器抓住了一样。 可用于检查。
释放行为:释放对象时,指定其物理运动行为。 要求该对象上有一个刚体组件。
- 无
- 内容
- 保持速度
- 保持角速度
旋转约束:指定在与对象交互时,对象在哪个轴上旋转。
- 无
- 仅 X 轴
- 仅 Y 轴
- 仅 Z 轴
使用局部空间进行约束:在应用世界空间轴或局部空间轴相关的约束时用于切换的切换开关。
运动约束
- 无
- 固定与头部的距离
平滑化处于活动状态:指定平滑化是否处于活动状态。
单手平滑化量:应用于移动、缩放、旋转的平滑化量。 平滑化量为 0 表示不平滑化。 最大值表示不更改值。
事件
操控处理程序提供以下事件:
- OnManipulationStarted:在操控开始时触发。
- OnManipulationEnded:在操控结束时触发。
- OnHoverStarted:当手部/控制器悬停在近距或远距可操控对象上时触发。
- OnHoverEnded:当手部/控制器未悬停在近距或远距可操控对象上时触发。