Если вы хотите использовать RealityKit
технологию рендеринга, вы должны использовать свои собственные якоря.
Итак, для RealityKit опыт отслеживания лица вам просто нужно:
AnchorEntity(AnchoringComponent.Target.face)
И вам даже не нужен экземпляр session(_:didAdd:)
и session(_:didUpdate:)
методы в случае, если вы используете Reality Composer scene.
Если вы готовите сцену в Reality Composer .face
, то тип привязки доступен для вас при запуске. Вот как выглядит нередактируемый скрытый код Swift в файле .reality
:
public static func loadFace() throws -> Facial.Face {
guard let realityFileURL = Foundation.Bundle(for: Facial.Face.self).url(forResource: "Facial",
withExtension: "reality")
else {
throw Facial.LoadRealityFileError.fileNotFound("Facial.reality")
}
let realityFileSceneURL = realityFileURL.appendingPathComponent("face", isDirectory: false)
let anchorEntity = try Facial.Face.loadAnchor(contentsOf: realityFileSceneURL)
return createFace(from: anchorEntity)
}
Если вам нужна более подробная информация об якорях, прочитайте этот пост .
PS
Но на данный момент есть одна неприятная проблема - если вы используете сцену, встроенную в Reality Composer, вы можете использовать только один тип якоря за один раз (horizontal
, vertical
, image
, face
или object
). Следовательно, если вам нужно использовать ARWorldTrackingConfig
вместе с ARFaceTrackingConfig
- не используйте сцены Reality Composer. Я уверен, что эта ситуация будет исправлена в ближайшее время.