上面这个专栏主要介绍了 OpenXR + XR Interaction Toolkit 开发的一些常用功能。
而本专栏记录了我使用 XR Interaction Toolkit 的过程中遇到的一些疑惑点和我认为比较重要的知识点,相当于对上面这个专栏的补充说明,能让大家对 XR Interaction Toolkit 的功能和部分原理有个更深刻的理解。
XR Toolkit Interaction 官方文档:https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.1/manual/index.html
📕Action-based 和 Device-based 的区别
在我们使用或添加 XR Interaction Toolkit 的一些组件时,会经常看到同样的组件会有两种版本,一种时后缀加 (Action-based) ,另一种是后缀加 (Device-based),如图所示:
然后我们可以看一下 XR Controller(Action-based) 和 XR Controller(Device-based) 在 Inspector 面板上的区别:
XR Controller(Action-based):
XR Controller(Device-based):
而在我写的系列教程中,使用的都是 Action-based 的组件,那么这两种版本到底有什么区别呢?
⭐⭐⭐
那么这就涉及到 Unity VR 中的两种输入系统:Input System 和 XR Input Subsystem
这两种系统在我写的 Unity VR 系列教程(基于 OpenXR + XR Interaction Toolkit)中的第二篇(手部动画)中有进行介绍(链接:Unity VR开发教程 OpenXR+XR Interaction Toolkit 2.1.1 (二) 手部动画,可以看编写脚本控制手部动画的那部分)
总结来说,XR Input Subsystem 是 Unity 为了给不同 XR 厂商的设备做适配,推出的一款处理 XR 中动作与物理设备(比如 VR 手柄上各种按键)之间映射关系的输入系统。Input System 是 Unity 新推出的通用输入系统,同样需要配置动作和物理设备的映射关系,比如指定“按下手柄的 Grip 键”时,触发的是“抓取”这个动作。
它们的区别是:(下面先用设备按键来指代物理设备)
XR Input Subsystem 使用起来更加简单,但是动作与设备按键的绑定是无法修改的(因为 Unity 官方已经帮我们定义好了)
Input System 可以自由配置动作和按键的映射关系,灵活性更高。
比如我想按下手柄的 Trigger 键来进行抓握,可以直接在 Input Action Asset (Input System 里的功能)里进行更改。但是 XR Input Subsystem 只允许按下手柄的 Grip 键来进行抓握。
而 Device-based 对应的是 XR Input Subsystem
Action-based 对应的是 Input System
Unity 官方推荐使用的是 Action-based 的版本,因为它的灵活性更高。
转载于:https://blog.csdn.net/qq_46044366/category_11656077.html