首页 文章

SceneKit 节点是否轮流累积

提问于
浏览
1

如果我以这种方式在 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 属性有同样的问题

谢谢

2 回答

  • 1

    关于变换的SCNNode属性都不是“累积的”,就像CALayertransform一样。要组合转换,您需要使用诸如SCNMatrix4Rotate之类的工具。

  • 0

    虽然我永远不会与使用 mnuages 的 SceneKit 中的内容争论(我认为他在 Apple 上工作),但我认为他的字面意思也是如此。

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

    他们是 :

    rotateBy(x:y:z:duration:)

    和:

    rotate(by:around:duration:)

    重复应用这两个将累积地添加到对象的旋转。

相关问题