Unity 2022.3切换Both Eyes模式后Game视图仍显示单眼求助
Unity 2022.3 + SteamVR:恢复Game视图的Both Eyes立体显示模式
问题背景
在Unity 2022.3结合HTC Vive Pro Eye与SteamVR开发时,遇到以下异常:
- 编辑器运行后,Game视图切换至
Both Eyes模式仍显示单眼画面,但HMD内的立体显示完全正常 - 尝试通过脚本设置
XRSettings.gameViewRenderMode = GameViewRenderMode.BothEyes;无效果 Project Settings→XR Plug-in Management→OpenVR的Mirror View Mode仅提供Left/Right/None/Open VR选项,无Both Eyes选项;其中Open VR模式会呈现双眼混合画面且干扰SteamVR预览- 项目由Unity 2019.4升级重构而来,旧版本未使用XR Plug-in Management包,Game视图可正常显示
Both Eyes模式
解决方案
方案1:切换回Legacy XR(兼容旧项目逻辑)
旧版本依赖Legacy XR架构,升级后新XR插件管理的镜像逻辑发生变化,切换回Legacy可快速恢复原有行为:
- 打开
Project Settings→XR Plug-in Management,取消勾选OpenVR插件 - 进入
Player Settings→Other Settings→XR Settings,勾选Virtual Reality Supported - 在
Virtual Reality SDKs列表中添加OpenVR - 运行项目后,Game视图的
Both Eyes模式即可正常工作
方案2:保留新XR Pipeline,自定义双眼镜像渲染
若需使用新XR插件管理体系,可通过自定义相机渲染实现Game视图的双眼显示:
- 创建两个
Render Texture,分辨率设置为HMD单眼分辨率(例如Vive Pro Eye的1440×1600) - 复制主相机得到两个子相机:
- 第一个子相机:
Target Eye设为Left,Target Texture绑定到第一个Render Texture - 第二个子相机:
Target Eye设为Right,Target Texture绑定到第二个Render Texture - 主相机:
Target Eye设为None,避免重复渲染
- 第一个子相机:
- 在场景中创建两个
RawImage或Plane,分别绑定左右眼的Render Texture,调整布局为左右并排 - 运行项目后,Game视图即可显示独立的左右眼画面
方案3:尝试新XR Pipeline的API设置
新XR架构下原XRSettingsAPI可能失效,可尝试使用XRDisplaySubsystem设置:
using UnityEngine; using UnityEngine.XR; public class SetGameViewBothEyes : MonoBehaviour { void Start() { var displaySubsystem = XRDisplaySubsystem.GetSubsystem<XRDisplaySubsystem>(); if (displaySubsystem != null) { displaySubsystem.SetGameViewRenderMode(GameViewRenderMode.BothEyes); } } }
将脚本挂载到场景任意GameObject上,运行后检查Game视图是否恢复双眼显示
额外检查:SteamVR客户端设置
打开SteamVR客户端,进入设置→视频,检查镜像到桌面相关选项,确保未限制为单眼镜像
内容的提问来源于stack exchange,提问作者Steven Ho
相关产品推荐
相关产品推荐

