如何在Unity中强制Oculus Quest 2的边界类型为Stationary
如何在Unity中通过OVR框架强制Oculus Quest 2设置Stationary边界类型
可行方案:使用OVR原生API替代废弃的XRDevice接口
废弃的XRDevice.SetTrackingSpaceType无法适配最新的OVR框架,你需要使用Oculus官方提供的OVRManager和OVRBoundary API来强制设置Stationary边界类型,步骤如下:
确认OVR框架集成状态
确保项目已导入最新版Oculus Integration包,且场景中OVRCameraRig对象已挂载OVRManager组件。通过代码强制设置追踪模式
监听OVR初始化完成事件,在Oculus平台服务就绪后执行设置,避免初始化顺序问题导致失效:using UnityEngine; public class ForceStationaryTracking : MonoBehaviour { void Awake() { OVRManager.Initialized += OnOVRInitialized; } void OnOVRInitialized(bool success) { if (success) { // 设置追踪原点为Stationary模式 OVRManager.trackingOriginType = OVRTrackingOrigin.Stationary; // 刷新边界配置,确保设置立即生效 OVRBoundary.RefreshBoundary(); } } void OnDestroy() { OVRManager.Initialized -= OnOVRInitialized; } }将此脚本挂载到
OVRCameraRig或场景中任意持久化GameObject上即可。项目设置兜底验证
在UnityEdit > Project Settings > Oculus面板中,将Tracking Origin默认值设为Stationary,作为代码设置的 fallback,进一步确保生效。
注意事项
- 该设置仅在Quest 2真机或Oculus Link连接环境下生效,Unity编辑器预览可能无法体现实际效果。
- 若仍存在问题,检查Oculus Integration包是否为最新版本,旧版本可能存在API兼容问题。
内容的提问来源于stack exchange,提问作者Volkand
相关产品推荐
相关产品推荐

