目录
Tracked Pose Driver (Input System)作用
Tracked Pose Driver (Input System)组件详解
Trackde Pose Driver与Tracked Pose Driver (Input System)的区别
传统输入系统(Input)与新输入系统(Input System)的区别
Tracked Pose Driver作用
Tracked Pose Driver是基于Input开发的跟踪设备姿态的组件,将虚拟对象与物理设备各个部分对齐
Tracked Pose Driver组件详解
-
Device
指定要跟踪的姿势类型
Generic XR Device | 通用XR设备,跟踪HMD和AR移动设备 |
Generic XR Controller | 通用XR控制器 |
Generic XR Remote | 通用XR遥控器 |
-
Pose Source
姿势来源
Left Eye | 左眼 |
Right Eye | 右眼 |
Center Eye - HMD Reference | HMD眼部中心位置 |
Head | 头部 |
Color Camera | 移动端的摄像机 |
-
Tracking Type
获取追踪数据的类型
Rotation And Position | 方向及位置 |
Rotation Only | 仅方向 |
Position Only | 仅位置 |
-
Update Type
获取数据的间隔
Update And Before Render | 每帧和渲染前都调用 |
Update | 每帧调用 |
Before Render | 渲染前调用 |
-
Use Relative Transform
是否将使用对象的原始Transform作为其基础值
-
Use Pose Provider
姿势提供者,挂载要跟踪姿势的游戏对象
Tracked Pose Driver (Input System)作用
Tracked Pose Driver (Input System)是基于Input System开发的跟踪设备姿态的组件,将虚拟对象与物理设备各个部分对齐
Tracked Pose Driver (Input System)组件详解
下面是在创建XR Origin后,摄像机上Tracked Pose Driver (Input System)的参数
-
Tracking Type
获取追踪数据的类型
Rotation And Position | 方向及位置 |
Rotation Only | 仅方向 |
Position Only | 仅位置 |
-
Update Type
获取数据的间隔
Update And Before Render | 每帧和渲染前都调用 |
Update | 每帧调用 |
Before Render | 渲染前调用 |
-
Ignore Tracking State
是否忽略跟踪状态,可以在某些情况下暂时忽略追踪设备的位置和方向数据
-
Position Input
位置输入数据
Use Reference | 是否使用引用 |
centerEyePosition [XR HMD] | 头显中用户眼睛中心的位置 |
devicePosition [HandheldARInputDevice] | 设备的位置 |
-
Rotation Input
方向输入数据
Use Reference | 是否使用引用 |
centerEyeRotation [XR HMD] | 头显中用户眼睛中心旋转的方向 |
deviceRotation [HandheldARInputDevice] | 设备当前的角度 |
-
Tracking State Input
追踪状态输入
Use Reference | 是否使用引用 |
trackingState [XR HMD] | 头显的追踪状态 |
Trackde Pose Driver与Tracked Pose Driver (Input System)的区别
与Tracked Pose Driver不同的是,Tracked Pose Driver (Input System)是为了支持新的输入系统Input System而设计的。你可以配置和映射VR/AR设备的姿态数据,以便更轻松的与这些设备进行交互,而且有更高的可扩展性,在多种平台开发更与灵活
传统输入系统(Input)与新输入系统(Input System)的区别
-
灵活性
Input的灵活性比较低,除了处理常见的输入设备,比如键鼠等,对于比较复杂的VR/AR设备等,可能需要更多的自定义代码
Input System除了常见的输入设备以外,还支持VR/XR设备,触摸屏以及其它的传感器设备
-
配置
Input通常需要手动编写处理输入事件的代码,比如按键检测,鼠标移动等等。这会导致代码冗长不便于维护
Input System可以通过配置文件来映射和管理输入设备及输入数据,更方便配置的同时,让增加输入设备和更改输入映射更加容易
-
性能
Input通过轮询的方式来检测用户是否输入,需要在每一帧中查询设备的状态,判断按键是否按下、松开或保持按住等
Input System使用事件驱动模式来处理用户输入。在执行输入时,系统将这个操作视为一个事件,可以注册事件监听器来订阅特定类型的事件,在事件发生时,监听器中的处理函数会被调用,响应输入操作。让程序更具响应性,而不会把事件浪费在无事件的轮询中,况且输入通常情况下是异步的,而轮询并不能准确获取输入。并且还通过更高效的底层数据结构和算法来降低输入处理的开销,可减少输入延迟并提高应用程序的响应速度
-
平台
Input在不同的平台的输入设备和事件处理方式有所不同,需要编写特定的输入代码
Input System可以支持多个平台,比如移动端、PC端、VR/XR等,可以在不同的平台上使用相同的输入代码