1

我遇到了一个错误,似乎从未找到 AnchorEntity 的目标。

例如:我在 Reality Composer 中将水平面设置为触发器。一旦我运行该项目,有时(并非总是)它永远不会检测到飞机。就像飞机检测没有运行一样。

我的解决方案是使用基于 AnchorEntity 中的目标的配置运行会话。问题是我无法使用检测图像运行会话,因为我从目标.image案例中收到的只是名称和组。我无法ARReferenceImages使用该数据进行初始化。

let loadRequest = Entity.loadAnchorAsync(contentsOf: url)
loadRequest.sink(receiveCompletion: { result in
    print("handle completion and error") }, 
    receiveValue: { anchorEntity in
        switch anchorEntity.anchoring.target {
        case .plane(let alignment, classification: let classification, minimumBounds: let bounds):
            let config = ARWorldTrackingConfiguration()
            config.planeDetection = alignment == .horizontal ? .horizontal : .vertical
            self.arView.session.run(config, options: .resetTracking)
        case .image(group: let group, name: let name): break
            // ISSUE: run session with detected images from anchorEntity
        default: break
        }
        self.arView.scene.addAnchor(anchorEntity)
    }).store(in: &self.subscribers)
4

0 回答 0