You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ARKit与RealityKit时如何启用.showSceneUnderstanding显示LiDAR网格指引

问题原因

你用的是ARSCNView(SceneKit的AR视图),但.showSceneUnderstanding是RealityKit的ARView专属调试选项,ARSCNView并没有这个枚举值,直接调用自然会报错。

解决方案

根据你当前使用的框架,分两种场景处理:

场景1:继续用SceneKit(ARSCNView)

如果要在ARSCNView里显示场景重建的Mesh,得手动获取ARMeshAnchor并创建对应的SCNNode添加到场景中,步骤如下:

  1. 确保配置已开启场景重建(你代码里已经加了,这步没问题):
worldtracking.sceneReconstruction = .meshWithClassification
  1. 实现ARSessionDelegate的锚点添加方法,生成Mesh节点:
func session(_ session: ARSession, didAdd anchors: [ARAnchor]) {
    guard let meshAnchors = anchors as? [ARMeshAnchor] else { return }
    for meshAnchor in meshAnchors {
        // 从Mesh锚点数据创建SCN几何
        let meshGeometry = SCNGeometry(meshAnchor: meshAnchor)
        // 设置Mesh的显示样式(比如半透明线框)
        let meshNode = SCNNode(geometry: meshGeometry)
        meshNode.name = "mesh_\(meshAnchor.identifier)"
        meshNode.geometry?.firstMaterial?.fillMode = .lines
        meshNode.geometry?.firstMaterial?.transparency = 0.5
        meshNode.geometry?.firstMaterial?.diffuse.contents = UIColor.blue
        // 添加到场景根节点
        sceneView.scene.rootNode.addChildNode(meshNode)
    }
}
  1. 补充锚点更新方法,实时刷新Mesh形状:
func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
    guard let meshAnchors = anchors as? [ARMeshAnchor] else { return }
    for meshAnchor in meshAnchors {
        // 找到对应节点并更新几何数据
        guard let meshNode = sceneView.scene.rootNode.childNodes.first(where: { $0.name == "mesh_\(meshAnchor.identifier)" }) else { return }
        meshNode.geometry = SCNGeometry(meshAnchor: meshAnchor)
    }
}

场景2:切换到RealityKit(ARView)

如果愿意改用RealityKit的ARView,就能直接用.showSceneUnderstanding快速显示Mesh,步骤更简单:

  1. 把视图替换为ARView(可以在Storyboard里设置类为ARView,或者代码创建):
@IBOutlet var arView: ARView!
  1. 配置会话后直接开启调试选项:
let config = ARWorldTrackingConfiguration()
config.sceneReconstruction = .meshWithClassification
arView.session.run(config)
arView.debugOptions.insert(.showSceneUnderstanding)
额外注意事项
  • 场景重建仅支持A12及以上芯片的设备(比如iPhone XS及之后的机型)
  • 测试时需要在有足够视觉特征的真实环境中,ARKit才能正常重建Mesh

内容的提问来源于stack exchange,提问作者Varun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 09:26:00