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 会话类型(目前支持 AR 或 VR), 若没有明确声明 autoRun 参数,在进入会话后会自动运行 XR 逻辑
exitXR退出 XR 会话,所有的 XR 逻辑将被停止,上个会话添加的能力将被销毁,配置亦不会被保存,

整体流程

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

这篇文档对您有帮助吗?