XR

XR 管理器

XR 管理器从属于 Engine 实例,你可以通过 engine.xrManager 获取。它在 XR 中扮演着总控制器的角色,主要管理:

属性

属性类型解释
sessionManagerXRSessionManager会话管理器,管理 XR 会话的生命周期和上下文,通过它可以监听会话的状态变化
inputManagerXRInputManager交互管理器,管理 XR 空间中的所有输入,包含手柄,头显,相机等设备,通过它可以获取所有设备信息
cameraManagerXRCameraManager相机管理器,管理 XR 空间中的头显和相机,负责连接虚拟相机和现实相机
featuresXRFeatureXR 开启的所有能力
originEntityXR 初始化时的原点,它连接虚拟世界与现实世界

若将 origin 节点放置在场景(1,1,1) 位置,那么当 XR 空间开启时,若追踪到的相机的位置为 (x,y,z) ,那么实际上相机在场景的世界坐标为 (1 + x,1 + y,1 + z) ,他们之间的转换即 origin 局部坐标至世界坐标的转换。

方法

方法解释
isSupportedFeature是否支持某个功能,开发者可以在使用前判断当前环境是否支持某功能
addFeature添加特定 XR 功能,类似为节点添加组件
getFeature获取特定 XR 功能,类似从节点获取组件
enterXR进入 XR 会话,可以选择进入的 XR 会话类型(目前支持 ARVR), 若没有明确声明 autoRun 参数,在进入会话后会自动运行 XR 逻辑
exitXR退出 XR 会话,所有的 XR 逻辑将被停止,上个会话添加的能力将被销毁,配置亦不会被保存,

整体流程

依据上方的属性与方法,梳理一下 XR 的整体流程:

这篇文档对您有帮助吗?