SceneKit 旋转节点两次只执行最后一次旋转?
SceneKit rotate node twice only performs last rotation?
我正试图告诉一个节点像这样旋转:
node.rotation = SCNVector4Make(0, 1, 0, -Float(M_PI))
node.rotation.rotation = SCNVector4Make(1, 0, 0, -Float(M_PI_2 / 2.9))
我不明白为什么唯一有效的旋转是最后一个。看起来第一次轮换没有做任何事情。
如何在 Y 轴上旋转一个节点,然后在 x 轴上旋转另一个角度?我在这里错过了什么?
谢谢
您不是在添加旋转,而是在指定一个新值来替换以前的值。
我觉得更适合你的属性是eulerAngles
。这是表示为 roll, yaw, and pitch 角度的方向。请注意,分配一个新向量仍然会替换以前的值。另请注意,尽管向量的分量被称为 x、y、z,但顺序是 roll、yaw 和 pitch。这意味着 node.eulerAngles.x
改变节点绕其 z 轴的旋转。
我正试图告诉一个节点像这样旋转:
node.rotation = SCNVector4Make(0, 1, 0, -Float(M_PI))
node.rotation.rotation = SCNVector4Make(1, 0, 0, -Float(M_PI_2 / 2.9))
我不明白为什么唯一有效的旋转是最后一个。看起来第一次轮换没有做任何事情。
如何在 Y 轴上旋转一个节点,然后在 x 轴上旋转另一个角度?我在这里错过了什么?
谢谢
您不是在添加旋转,而是在指定一个新值来替换以前的值。
我觉得更适合你的属性是eulerAngles
。这是表示为 roll, yaw, and pitch 角度的方向。请注意,分配一个新向量仍然会替换以前的值。另请注意,尽管向量的分量被称为 x、y、z,但顺序是 roll、yaw 和 pitch。这意味着 node.eulerAngles.x
改变节点绕其 z 轴的旋转。