从.rcproject加载的场景在真实iPhone的.nonAR模式下无法显示求助
解决RealityComposer场景在ARView.nonAR模式真机不显示的问题
以下是几个可能的原因和对应的解决方案:
变量名拼写错误导致相机未生效
代码里定义的ARView实例是arview(小写v),但添加相机锚点时误用了arView(大写V),这两个是完全独立的变量,导致你手动创建的相机根本没加到返回的ARView中。在nonAR模式下,真机不会像AR模式那样自动配置合适的相机,自然看不到场景。修正拼写即可:// 把arView改成arview arview.scene.addAnchor(cameraAnchor)异步加载的时机问题
loadMySceneAsync是异步方法,返回ARView的时候场景可能还没加载完成。模拟器因为加载速度快可能刚好能显示,但真机的加载延迟会导致场景没被添加到视图里。如果场景体积不大,建议改用同步加载:do { let myScene = try Sample.loadMyScene() arview.scene.anchors.append(myScene) } catch { print("加载场景失败: \(error.localizedDescription)") }要是必须用异步加载,需要借助
UIViewRepresentable的Coordinator来处理回调,确保场景加载完成后能更新视图。相机位置与场景范围不匹配
检查你设置的相机位置[0, 0.2, 0.5]是否能覆盖场景的可视范围。可以尝试调整相机位置,或者给场景设置明确的初始位置:let myScene = try result.get() myScene.position = SIMD3(x: 0, y: 0, z: 0) // 让场景处于相机视野中心 arview.scene.anchors.append(myScene)另外也可以调整相机焦距,适配场景大小:
camera.focalLength = 1.2 // 根据实际场景调整数值真机环境排查
重启一下真机,有时候系统缓存会导致这类奇怪的显示问题;同时确认App在真机上没有被限制相关权限(虽然nonAR模式不需要相机权限,但偶尔系统权限异常也会影响渲染)。
内容的提问来源于stack exchange,提问作者polaris_bp
相关产品推荐
相关产品推荐

