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