В моем проекте я хочу переключаться между ARWorldTrackingConfiguration
и ARFaceTrackingConfiguration
.
Я использую два разных типа обзора: ARSCNView
для использования задней камеры и ARView
для отслеживания лица. Сначала я запускаю ARSCNView
, а потом, если пользователь хочет, он может переключиться на отслеживание лица
Я запускаю свой контроллер представления в этом режиме:
sceneView.delegate = self
sceneView.session.delegate = self
// Set up scene content.
setupCamera()
sceneView.scene.rootNode.addChildNode(focusSquare)
let configurationBack = ARWorldTrackingConfiguration(
configurationBack.isAutoFocusEnabled = true
configurationBack.planeDetection = [.horizontal, .vertical]
sceneView.session.run(configurationBack, options: [.resetTracking, .removeExistingAnchors])
И я загружаю свой объект (.scn)
Когда я хочу переключиться на переднюю камеру, я перехожу к ARView, я делаю следующее:
let configurationFront = ARFaceTrackingConfiguration()
// here I stop my ARSCNView session
self.sceneView.session.pause()
self.myArView = ARView.init(frame: self.sceneView.frame)
self.myArView!.session.run(configurationFront)
self.myArView!.session.delegate = self
self.view.insertSubview(self.myArView!, aboveSubview: self.sceneView)
И затем я загружаю свой .rcproject
Итак, моя проблема начинается здесь, когда я пытаюсь вернуться к задней камере и снова перейти к ARWorldTracking.
Это мой метод:
// remove my ARView with face tracking
self.myArView?.session.pause()
UIView.animate(withDuration: 0.2, animations: {
self.myArView?.alpha = 0
}) { (true) in
self.myArView?.removeFromSuperview()
self.myArView = nil
}
// here I restart the initial ARSCNView
let configurationBack = ARWorldTrackingConfiguration(
configurationBack.isAutoFocusEnabled = true
configurationBack.planeDetection = [.horizontal, .vertical]
session.run(configurationBack, options: [.resetTracking, .removeExistingAnchors])
Когда я переключаюсь на заднюю камеру, датчик не отслеживает самолеты правильно.
Как я могу это исправить, так как я могу правильно переключаться между ARWorldTrackingConfiguration и ARFaceTrackingConfiguration?
заранее спасибо