swift RealityKit和SceneKit是否可以一起使用?

wyyhbhjk  于 2023-02-03  发布在  Swift
关注(0)|答案(1)|浏览(227)

我想在RealityKit的ARView中使用对象检测,但只能找到在SceneKit的ARSCNView中实现它的文档。
有什么办法吗?

jchrr9hc

jchrr9hc1#

您可以同时使用ARKit和RealityKit,但RealityKit不能与SceneKit一起使用,因为它们完全不同。然而,在RealityKit的ARView中可以轻松实现对象检测。
为此,请使用以下代码:

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)
    }
}

相关问题