SceneKit节点旋转是否累积

Is SceneKit node rotation cumulative

如果我以这种方式在 scenekit 节点对象上进行旋转会发生什么:

node.rotation = SCNVector4Make(1, 0, 0, M_PI_2)

它是将 PI/2 添加到现有旋转还是将对象角度设置为 PI/2?

换句话说,如果我调用此行两次会发生什么:

node.rotation = SCNVector4Make(1, 0, 0, M_PI_2)

它是旋转到 PI/2 还是 PI?

我对 node.eulerAngles 有同样的问题 属性

谢谢

none 关于转换的 SCNNode 属性是 "cumulative",就像 CALayertransform 一样。要组合转换,您需要使用 SCNMatrix4Rotate.

等实用程序

虽然我永远不会用 mnuages 与 SceneKit 中的内容争论(我认为他在 Apple 工作),但我会争辩说他把你的问题看得太字面意思了。

如果你正在寻找累积旋转,它在 SceneKit 中可用,如果你知道你想要多少旋转。您可以使用两个 rotateBy SCNAction。

他们是:

rotateBy(x:y:z:duration:)

和:

rotate(by:around:duration:)

重复应用这两项,将累积添加到对象的旋转中。