如何使SCNNode水平旋转/旋转

时间:2017-07-21 01:06:37

标签: scenekit swift4 scnnode xcode9

我正在尝试使我的SCNNode自动水平旋转。这是我到目前为止的代码:

box.scale = SCNVector3(x: 0.26, y: 0.26, z: 0.26)
box.position = SCNVector3(0.15, 3.85, -3)

如何让此框自动水平旋转?而对于一个加号,有没有办法在启用用户交互的情况下实现它?谢谢!

更新:如果我听起来不清楚,这就是我的意思:你知道什么时候你用手指旋转篮球以及它是如何水平旋转的?这就是我想要实现的效果!谢谢!

1 个答案:

答案 0 :(得分:2)

你可以

编辑:

let action = SCNAction.repeatForever(SCNAction.rotate(by: .pi, around: SCNVector3(0, 1, 0), duration: 5))
box.runAction(action)

您可以像这样更改

let oldTransform = box.transform
let rotation = SCNMatrix4MakeRotation(axis.x, axis.y, axis.z angle)
SCNTransaction.begin()
SCNTransaction.animationDuration = 0.5
box.transform = SCNMatrix4Mult(rotation, oldTransform)
SCNTransaction.commit()

要使用用户输入,您可以使用手势识别器更改旋转角度或持续时间