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游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
214 3
|
4月前
|
算法 vr&ar C#
使用Unity进行虚拟现实开发:深入探索与实践
【8月更文挑战第24天】使用Unity进行虚拟现实开发是一个充满挑战和机遇的过程。通过掌握Unity的VR开发技术,你可以创造出令人惊叹的VR体验,为用户带来前所未有的沉浸感和乐趣。随着技术的不断进步和应用场景的不断拓展,VR开发的未来充满了无限可能。希望本文能为你提供有用的指导和启发!
|
3月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
291 0
|
3月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
159 0
|
4月前
|
vr&ar 图形学 开发者
步入未来科技前沿:全方位解读Unity在VR/AR开发中的应用技巧,带你轻松打造震撼人心的沉浸式虚拟现实与增强现实体验——附详细示例代码与实战指南
【8月更文挑战第31天】虚拟现实(VR)和增强现实(AR)技术正深刻改变生活,从教育、娱乐到医疗、工业,应用广泛。Unity作为强大的游戏开发引擎,适用于构建高质量的VR/AR应用,支持Oculus Rift、HTC Vive、Microsoft HoloLens、ARKit和ARCore等平台。本文将介绍如何使用Unity创建沉浸式虚拟体验,包括设置项目、添加相机、处理用户输入等,并通过具体示例代码展示实现过程。无论是完全沉浸式的VR体验,还是将数字内容叠加到现实世界的AR应用,Unity均提供了所需的一切工具。
156 0
|
6月前
|
存储 图形学
【unity小技巧】unity事件系统创建通用的对象交互的功能
【unity小技巧】unity事件系统创建通用的对象交互的功能
70 0
|
6月前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
225 0
|
6月前
|
图形学
【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏4(附项目源码)
【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏4(附项目源码)
95 0
|
4月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
220 6
|
3月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
159 4