控制器 / 手部跟踪切换

QCHT互动工具包能够在手部追踪和控制器之间实现无缝切换,前提是控制器可用。

 

基于XRIT,不论是手部追踪还是控制器,交互实现方式都保持一致。只需使用XR Switch Hand To Controller Manager组件即可启用该系统。


5.gif


双手和控制器分别由它们自己的XR控制器驱动,并设置了各自的XR互动器。

 

XR Switch Hand To Controller Manager组件提供了两种切换规则:

 

● 双控制器同时连接:一旦左右两个控制器都处于活动状态,系统将停止手部追踪并启用控制器。若其中一个控制器电池耗尽或仍放置在表面上,则系统重新启用手部追踪并激活之。


● 至少有一个控制器连接:只要有一个控制器活动,系统即停止手部追踪并启用控制器。


图片7.png


Integration

在场景中的任何对象(例如XR原点)上添加一个XRSwitchHandToControllerManager组件,并根据以下示例设置isLeftControllerTracked和isRightControllerTracked变量,使用左右XR控制器的isTracked动作。

 

在场景层次结构中添加手部使用的QualcommHandControllerLeft和QualcommHandControllerRight预制体实例,以及控制器使用的QualcommControllerLeft和QualcommControllerRight。它们应该作为子对象被放置在摄像机偏移或ARSession Origin游戏对象下,以确保正常运作。

 

图片8.png


将这些预制体实例QualcommHandControllerLeft和QualcommHandControllerRight分配给XRSwitchHandToControllerManager组件的Left/Right Hand Controller和Left/Right Controller属性,具体操作如下所示。

 

图片9.png 


在这个例子中,将使用Oculus Touch控制器交互配置文件中的isTracked动作来实现手部和控制器之间的切换。

 

请确保在项目设置的OpenXR设置中选择了Oculus Touch控制器作为交互配置文件。

 

图片10.png