RealityKit和SceneKit可以一起使用吗?

问题描述 投票:0回答:1

我想在RealityKit的ARView中使用对象检测,并且只能在SceneKit的ARSCNView中找到实现该对象的文档。

有没有解决的办法?

swift augmented-reality scenekit arkit realitykit
1个回答
1
投票

ARKit的ARSCNView类是SceneKit的SCNView类的后代,因此,如果您已经导入了ARKit模块,则甚至不需要导入SceneKit。尽管您可以轻松地将ARKit和RealityKit一起使用。

对于RealityKit的对象检测,请使用以下代码:

import ARKit
import RealityKit

extension ViewController: ARSessionDelegate {

    func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {

        guard let objectAnchor = anchors.first as? ARObjectAnchor,
              let _ = objectAnchor.referenceObject.name
        else { return }

        let anchor = AnchorEntity(anchor: objectAnchor)   
        anchor.addChild(model)    
        arView.scene.anchors.append(anchor)
    }
}

并将相应的内容放入.arresourcegroup文件夹

class ViewController: UIViewController {

    @IBOutlet var arView: ARView! 

    override func viewDidLoad() {
        super.viewDidLoad()    
        arView.session.delegate = self

        guard let obj = ARReferenceObject.referenceObjects(inGroupNamed: "Objs", 
                                                                 bundle: nil) 
        else { return }

        let config = ARWorldTrackingConfiguration()
        config.detectionObjects = obj
        arView.session.run(config)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.