如何在 Swift 中垂直(沿 y 轴)缩放 3D 对象?

How to scale 3D object vertically (along y-axis) in Swift?

我用 ARKit 创建了一扇门,我想创建一个比例动画。我的目标是仅沿 y 轴缩放它(将门拉长)。 我想让门在1秒内变大

我的方法是简单地缩放它,但我只有允许我沿所有 3 个轴缩放整个对象的选项。

接下来我尝试了 node.scale = SCNVector3(0, 2, 0) 并且效果不错,但它没有很好的动画效果。当我创建 SCNAction() 和 运行 代码作为具有持续时间的块时,它仍然只是更改大小而没有任何流畅的动画。

您需要使用 SCNTransaction。动画节点缩放的最简单方法是这样的:

SCNTransaction.begin()
SCNTransaction.animationDuration = 3
node.scale = SCNVector3(0, 2, 0)
SCNTransaction.commit() 

您可能还需要修改节点的 pivot 属性 以正确定位动画。