Получите стрелку направления к узлу scnnode, если этот узел не отображается в arcamera.

Если ARCamera движется влево, вправо, вверх или вниз и этот узел становится невидимым в ARCamera. Хочу указать стрелкой, что нужно двигать камеру вверх / вниз / вправо / влево.

Здравствуйте, вы нашли способ определить направление узла, то есть влево или вправо? Было бы полезно, если бы вы могли предоставить образец кода.

Abhirajsinh Thakore 27.12.2019 13:03
1
1
543
1

Ответы 1

    if let pointOfView = sceneView.pointOfView{
        let isMaybeVisible = sceneView.isNode((displayNode.presentation), insideFrustumOf: pointOfView)
        if isMaybeVisible{
            if arrowVisible{
                 arrow.removeFromParentNode()
            }
        }else{
            if !arrowVisible{
                 sceneView.pointOfView?.addChildNode(arrow)
            }
        }
    }

isNode(_:insideFrustumOf:) здесь проверяет, виден ли узел в ARCamera.
Используйте его внутри renderer(_:updateAtTime:)

Редактировать: Стрелка здесь - это узел (3-я стрелка). Помните, что острие стрелки должно быть обращено к оси -z

    let scene = SCNScene(named: "art.scnassets/arrow.dae")
    let arrow = scene?.rootNode.childNode(withName: "arrow", recursively: false)
    arrow.constraints = [SCNLookAtConstraint.init(target: node)]

спасибо за ответ, и он работает для 1-го шага. Как насчет направления к этому узлу, который не виден в ARCamera?

Ashvin A 01.11.2018 12:22

стрелка в приведенном выше коде требует arrow.constraints = [SCNLookAtConstraint.init(target: displayNode)]SCNLookAtConstraint

Alok Subedi 01.11.2018 12:38

Спасибо @Alok Subedi

Ashvin A 02.11.2018 10:55

извините за опоздание;) Я пробовал предложенный выше способ, но не работал. Может из-за того, что делаю не так? :) Не могли бы вы выложить образец кода для стрелки / направления к размещенному узлу?

Ashvin A 12.11.2018 14:48

Привет @AlokSubedi! Не могли бы вы предоставить образец кода hot для определения направления узла, то есть влево или вправо. Будет полезно.

Abhirajsinh Thakore 27.12.2019 13:00

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