我在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)(由于某些原因与该节点不同)。
关于如何实现这一目标的任何想法?