У меня была такая же ошибка для набора зависимостей в моем pom.xml, что версии зависимостей не были указаны в pom.xml и упоминались в родительском репозитории. По какой-то причине сведения о версии не синхронизировались с этим репо. Следовательно, я вручную ввел версии с использованием тега, и он работал как шарм. Немного времени, необходимого для поиска версий в родительском и укажите здесь. Но это можно сделать только для банок, которые показывают артефактную ошибку, и это работает. Надеюсь, это кому-то поможет.
Scene Kit автоматически обновляет положение узла, которому принадлежит SCNPhysicsBody
, основанный на физическом моделировании, поэтому SCNNode.position
является подходящим свойством.
Уловка состоит в том, что на самом деле есть две версии этого узла в игре. Тот, который вы обычно получаете, называется узлом «model». Он отражает целевые значения для заданных вами свойств, даже если вы задали эти свойства с помощью анимации. presentationNode
отражает состояние текущего визуализируемого узла - если анимация выполняется, свойства узла имеют промежуточные значения, а не целевые значения анимации.
Действия , физика, ограничения и любые изменения графика сцены, которые вы делаете внутри методов update / render loop , непосредственно нацелены на «презентационную» версию вашей сцены граф. Итак, чтобы прочитать свойства узла, установленные физическим симулятором, получите presentationNode
для интересующего вас узла (узла, которому принадлежит физическое тело chassisBody
автомобиля], затем прочитайте узел презентации position
(или другие свойства).
У меня такая же проблема с моим игровым узлом. Я перемещаю его с помощью applyForce
(для управления обнаружением столкновения). Но когда я проверяю положение узла после некоторого движения, позиция узла не перемещается (узел представления - это фактическое положение, когда в его ответе пишется рикер). Мне удается обновить scnNode.position с циклом визуализации. Вы должны установить положение своего узла с помощью presentationNode
.
node.position = node.presentationNode.position
Установите это в renderer(_: updateAtTime)
, и ваша позиция узла будет синхронизироваться с любой анимацией, сделанной вами в физическом устройстве