Unity导出Oculus Quest Demo时显示Oculus Go控制器的问题求助
Oculus Quest 显示Oculus Go控制器异常的解决方案
我之前也碰到过类似的控制器显示异常问题,结合你已经做的排查步骤,给你几个额外的调试方向,应该能解决问题:
1. 彻底检查Player Settings的XR配置
- 打开
Edit > Project Settings > Player > XR Settings,确保Oculus已添加到XR Plug-in Management(如果你用的是Unity 2019+的XR Pipeline) - 在Oculus的设置面板里,确认Target Device明确选择了
Quest,不要选Both或者Gear VR/Go,避免设备识别混淆 - 检查Minimum API Level设置为
Android 7.0 (API Level 24)或更高,Quest对系统版本有最低要求,过低的API等级可能导致控制器渲染异常
2. 验证OVRCameraRig的手部锚点配置
即使你全局选了Quest控制器预制体,个别手部锚点可能仍残留旧的Go资源:
- 展开
OVRCameraRig > TrackingSpace > LeftHandAnchor和RightHandAnchor - 检查每个锚点下的控制器模型预制体,确保是
Oculus > Prefabs > Controllers > OculusTouchController(Quest的控制器预制体),而不是GearVRController或GoController - 如果发现用了旧预制体,直接替换成Quest的控制器预制体,然后重新打包测试
3. 清除Unity缓存并重新导入资源
项目缓存里的旧资源可能导致冲突:
- 关闭Unity,找到项目根目录下的
Library文件夹,删除它(注意备份重要资源) - 重新打开Unity,等待资源重新导入完成
- 再次导入Oculus Integration包(建议用1.38版本,1.39的控制器消失问题确实是已知bug,暂时避开)
4. 调整渲染与批处理设置
有时候批处理会干扰控制器模型的加载:
- 打开
Edit > Project Settings > Graphics,暂时关闭Static Batching和Dynamic Batching - 打包测试,如果控制器正常显示了,再逐步开启排查具体是哪个设置导致的冲突
5. 检查Quest设备的手势追踪设置
如果你的设备开启了手势追踪,可能会覆盖控制器的显示:
- 在Quest设备的设置里,找到
Devices > Hands and Controllers - 设置为
Controllers Only,或者确保Controllers and Hands模式下优先使用控制器 - 重启设备后再测试你的应用
6. 输入绑定的兼容性检查
扳机键失效可能是输入路径用了Go的旧配置:
- 打开
Edit > Project Settings > Input Manager,检查你绑定扳机键的轴或按钮,确保用的是Quest对应的输入标识(比如OculusTouchController.Trigger或joystick button 14/15) - 或者直接用Oculus Integration提供的
OVRInput类来获取输入,比如OVRInput.Get(OVRInput.Button.PrimaryIndexTrigger),这样会自动适配Quest设备的输入
如果以上步骤都试过还是不行,建议创建一个全新的空白Unity项目,只导入Oculus Integration,添加OVRCameraRig并设置为Quest目标,打包测试。如果新项目正常,说明你的原项目存在资源冲突或配置残留,可以逐步迁移资源排查问题。
内容的提问来源于stack exchange,提问作者likuku
相关产品推荐
相关产品推荐

