Как получить позицию SCNNode в режиме реального времени? [Дубликат]

У меня была такая же ошибка для набора зависимостей в моем pom.xml, что версии зависимостей не были указаны в pom.xml и упоминались в родительском репозитории. По какой-то причине сведения о версии не синхронизировались с этим репо. Следовательно, я вручную ввел версии с использованием тега, и он работал как шарм. Немного времени, необходимого для поиска версий в родительском и укажите здесь. Но это можно сделать только для банок, которые показывают артефактную ошибку, и это работает. Надеюсь, это кому-то поможет.

11
задан Pamelloes 20 June 2014 в 02:42
поделиться

2 ответа

Scene Kit автоматически обновляет положение узла, которому принадлежит SCNPhysicsBody, основанный на физическом моделировании, поэтому SCNNode.position является подходящим свойством.

Уловка состоит в том, что на самом деле есть две версии этого узла в игре. Тот, который вы обычно получаете, называется узлом «model». Он отражает целевые значения для заданных вами свойств, даже если вы задали эти свойства с помощью анимации. presentationNode отражает состояние текущего визуализируемого узла - если анимация выполняется, свойства узла имеют промежуточные значения, а не целевые значения анимации.

Действия , физика, ограничения и любые изменения графика сцены, которые вы делаете внутри методов update / render loop , непосредственно нацелены на «презентационную» версию вашей сцены граф. Итак, чтобы прочитать свойства узла, установленные физическим симулятором, получите presentationNode для интересующего вас узла (узла, которому принадлежит физическое тело chassisBody автомобиля], затем прочитайте узел презентации position (или другие свойства).

22
ответ дан rickster 23 August 2018 в 22:19
поделиться

У меня такая же проблема с моим игровым узлом. Я перемещаю его с помощью applyForce (для управления обнаружением столкновения). Но когда я проверяю положение узла после некоторого движения, позиция узла не перемещается (узел представления - это фактическое положение, когда в его ответе пишется рикер). Мне удается обновить scnNode.position с циклом визуализации. Вы должны установить положение своего узла с помощью presentationNode.

node.position = node.presentationNode.position

Установите это в renderer(_: updateAtTime), и ваша позиция узла будет синхронизироваться с любой анимацией, сделанной вами в физическом устройстве

1
ответ дан Mihriban Minaz 23 August 2018 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: