Magic Leap 2中Vuforia+MRTK3的Screen Space-Camera Canvas不显示求助
环境配置
- 设备:Magic Leap 2
- Unity版本:6000.0.037f1
- Magic Leap SDK:2.6.0
- MRTK3版本:1.4.0
- OpenXR插件:1.14
- Vuforia引擎:11.3.4
- Vuforia数字眼镜示例:11.3.4
问题描述
用Vuforia数字眼镜示例在Magic Leap 2上运行时,图像目标追踪正常,但添加的Screen Space - Camera模式Canvas UI(仅基础图片/文本)在Unity编辑器中显示正常,到设备上完全看不到。已尝试创建仅包含MRTK XR Rig (Vuforia)、EventSystem、Image Target和该Canvas的干净场景,问题依旧。
解决步骤
1. 绑定正确的相机到Canvas
别给Canvas用默认的Main Camera,Magic Leap 2的XR场景必须用MRTK XR Rig (Vuforia)下的CenterEyeCamera,直接把这个相机拖进Canvas的Render Camera字段里。另外Plane Distance别设得太极端,0.5-2米之间最合适,太近太远都会被设备视锥体裁掉。
2. 确保相机渲染UI层
选中CenterEyeCamera,查看Inspector面板里的Culling Mask,一定要把UI层勾选上——要是没勾,相机根本不会渲染UI内容,自然看不到。
3. 让Vuforia与MRTK相机兼容
打开Window > Vuforia Configuration,在Camera Device区域:
- 把
Camera Mode改成Digital Eyewear - 勾选
Use Unity Camera,让Vuforia复用MRTK的CenterEyeCamera,别自己生成AR Camera抢资源。如果场景里有Vuforia自带的AR Camera,直接禁用掉。
4. 调整MRTK的XR渲染参数
进入Edit > Project Settings > XR Plug-in Management > OpenXR > Magic Leap,把Depth Submission Mode改成Depth 16 Bit或者Depth 24 Bit,不少UI渲染问题都是因为深度格式不兼容导致的。同时再确认一遍Canvas的Render Mode确实是Screen Space - Camera,别手滑选成Screen Space - Overlay了,Overlay模式在Magic Leap上需要额外配置才能生效。
5. 排查UI元素本身的可见性
检查Canvas下的图片、文本:
- Alpha值别设成0,颜色也别是透明的,别自己把元素藏了
- 查看
Sorting Layer和Order in Layer,确保UI没被其他3D物体挡住
6. 用调试日志定位问题
打包时开启Development Build并勾选Script Debugging,部署到设备后查看LogCat日志,找有没有UI渲染相关的报错(比如相机视锥体裁剪、材质不支持等)。也可以先把Canvas改成World Space模式测试能不能显示,要是能显示,说明元素本身没问题,再改回Screen Space - Camera排查配置问题。
内容的提问来源于stack exchange,提问作者CSM

