我想在RealityKit的ARView
中使用对象检测,并且只能在SceneKit的ARSCNView
中找到实现该对象的文档。
有没有解决的办法?
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)
}
}