Я поместил 4 изображения по кругу вокруг моего триггера на ARKit, и я пытаюсь найти способ создания оживленной анимации до того, как изображения достигнут своей конечной позиции, когда я двигаюсь и поворачиваю ссылку на изображение. Представьте, что это компас с буквами AR (N-S-E-W), и когда я поверну его, они оживят его новую позицию, перескочат на 5-10%, а затем вернутся назад.
Что я делаю до сих пор, так это вычисляю каждое изменение в позиции делегата рендеринга следующим образом:
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
print("Position: \(node.position)")
animateFaces(in: node)
}
static func animateFaces(in node: SCNNode) {
for i in 0..<node.childNodes.count {
node.childNodes[i].runAction(
SCNAction.sequence([
SCNAction.move(to: calculatePosition(ofIndex: i, around: node, withBounceOf: CGFloat(1.2)), duration: 0.5),
SCNAction.move(to: calculatePosition(ofIndex: i, around: node), duration: 0.5)
])
)
}
}
Однако напечатанные позиции вводят в заблуждение, поскольку при добавлении дочерних узлов на ARKit2 положение распознанного изображения всегда равно SCNVector3 (0,0,0) (по какой-то причине отличается от узла).
Есть идеи, как мне этого добиться?