RealityKit 和 SceneKit 可以一起使用吗?

Can RealityKit and and SceneKit be used together?

我想用RealityKit的ARView中的物体检测,只能在SceneKit的ARSCNView中找到实现它的文档。

有办法解决这个问题吗?

ARKit 的 ARSCNView class 是 SceneKit SCNView class 的后代,所以如果你已经导入了 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)
    }
}