Home > front end >  No exact matches in call to initializer for AnchorEntity
No exact matches in call to initializer for AnchorEntity

Time:04-13

Hi I'm trying to make a AR face tracking project, but here I have a error when assigning a face anchor to AnchorEntity. Error message is "No exact matches in call to initializer". I tried different ways but it didn't work at all. I'm a new swift learner, could anyone help me on this? Thanks

func makeCoordinator() -> Coordinator {
     Coordinator(self)
}
    
class Coordinator: NSObject, ARSessionDelegate {
      var parent: ARViewContainer
      var faceAnchorEntity: AnchorEntity
      var arView: ARView
    
      init(_ parent: ARViewContainer) {
          self.parent = parent
          self.faceAnchorEntity = AnchorEntity()
          self.arView = ARView()
      }
        
      func session(_ session: ARSession, didAdd anchors: [ARAnchor]) {
           guard let faceAnhcor = anchors[0] as? ARFaceAnchor else { return }
           parent.viewModel.vertices = faceAnhcor.geometry.vertices
           faceAnchorEntity = AnchorEntity(anchor: faceAnhcor)
           arView.scene.addAnchor(faceAnhcor) 
      }  
}

CodePudding user response:

You can use RealityKit's native .face target, which is much easier to implement.

import SwiftUI
import RealityKit
import ARKit 

func makeUIView(context: Context) -> ARView {

    let arView = ARView(frame: .zero)
    let ball = ModelEntity(mesh: .generateSphere(radius: 0.07))
    arView.session.run(ARFaceTrackingConfiguration())
    
    let anchor = AnchorEntity(.face)
    anchor.position.y  = 0.04
    anchor.addChild(ball)
    arView.scene.addAnchor(anchor)
    return arView
}
  • Related