Мои позиции одинаковы, но узлы не в том же месте? - PullRequest
0 голосов
/ 15 апреля 2019

В моей сцене SceneKit у меня есть узел, представляющий собой шар, с которым игрок будет взаимодействовать, и камера, камера является дочерним объектом объекта, называемого «selfieStick», который будет следовать за мячом и обеспечивать, так сказать,рамка для камеры, чтобы сфокусировать мяч. Когда я реализую это, я делаю это с помощью следующего кода:

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
    let ball = ballNode?.presentation
    let ballPosition = ball?.position

    selfieStickNode?.position = ballPosition!
}

, но когда я запускаю игру и нажимаю на шар (заставляя его прыгать вперед),селфи-палка и мяч идут в двух разных направлениях друг от друга ... как только я открываю инспектора сцены и выхожу на сцену, я проверяю позиции всего, и позиции для шара и seflieStick одинаковы, как и должно быть ..... но узлы не находятся в одном и том же месте сцены ... скриншоты ниже.

side angle selfieStick selected Ball in relation to selfieStick

1 Ответ

0 голосов
/ 15 апреля 2019

Я понял это ... по какой-то причине selfieStick каждый раз двигался в противоположном направлении Z ... поэтому я исправил это с помощью следующего кода:

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
    let ball = ballNode?.presentation
    let ballPosition = ball?.position
    let finalPosition = SCNVector3(ballPosition!.x,
                                   ballPosition!.y,
                                   (ballPosition!.z * -1))

    selfieStickNode?.position = finalPosition
}
...