SCNAction.rotateTo 使用 ARKit - Scenekit 以编程方式编写时开始旋转

SCNAction.rotateTo starts spinning when written programmatically using ARKit - Scenekit

我正在使用 ARKit - Scenekit 创建一个基于 AR 的应用程序。我能够成功放置 3D 模型。在用户点击时,我试图使用 rotateTo 方法将特定节点旋转 -120 度。理想情况下,这应该会导致平滑的旋转动画。但相反,节点围绕物体旋转得非常快,最终以 -120 度结束。当我尝试通过拖放 rotateto 动​​作直接在场景编辑器中执行相同操作时,效果很好。只有当我尝试以编程方式执行此操作时,它开始旋转得非常快,我什至无法预览旋转。

下面是我用来旋转节点的代码,

 let rotateAction =  SCNAction.rotateTo(x: 0, y: 0, z: -120, duration: 2)
 self.virtualObjectManager.lastUsedObject?.childNodes[0].childNodes[0].childNodes[0].runAction(rotateAction, completionHandler: {
            })

节点的初始角度为(0,0,0)。我正在尝试将其更改为 (0,0,-120)。谁能告诉我这是什么问题?

场景包编辑器使用度数,但SCNAction.rotateTo需要以弧度为单位的角度。

let angle = CGFloat(-120.0 * .pi / 180)
let rotateAction =  SCNAction.rotateTo(x: 0, y: 0, z: angle, duration: 2)