Исправить положение SCNNode после того, как изображение трекера AR не отображается

У меня есть простой проект, который включает в себя размещение 3D-модели на предопределенном изображении для отслеживания с помощью SceneKit и ARImageAnchor. Как только камера видит эталонное изображение, узел объекта прикрепляется к трекеру с помощью ARAnchor и отслеживает точно. Однако, как только трекер исчезает из поля зрения, rootNode, к которому привязан якорь, автоматически устанавливается на isHidden. Когда трекер закрыт, ARanchor не остается фиксированным в последней известной позиции, а вместо этого перемещается в исходную точку камеры.

Можно ли зафиксировать положение якоря относительно камеры, даже если трекер не виден?

Настройка режима слежения и запуск сцены:

              let configuration = ARImageTrackingConfiguration()
        guard let arTrackers = ARReferenceImage.referenceImages(inGroupNamed: "AR Resources", bundle: nil) else {return}
        configuration.trackingImages = arTrackers
        
        // Run the view's session
        sceneView.session.run(configuration)

Создание SCNscenerenderer и присоединение узла к rootNode/ARAnchor:

              guard anchor is ARImageAnchor else {return}
        
        guard let container = sceneView.scene.rootNode.childNode(withName: "container", recursively: false) else {
            print("containerError")
            return
        }
        container.removeFromParentNode()
        node.addChildNode(container)
        container.isHidden = false
    }

0 ответов

Другие вопросы по тегам