SCNAction.rotateByAngle旋转在El Capitan或Metal中反转

时间:2015-10-27 21:14:17

标签: rotation reverse scenekit

在我的游戏中使用SCNAction.rotateByAngle(...)我会按左/右/上/下键或滑动以使对象在该方向上旋转。但是在El Capitan上测试我的游戏或者使用Metal作为渲染器测试会导致3D对象以另一种方式旋转,即左侧变为右侧,向上变为向下。

我没有找到任何文件提到在El Capitan或Metal中旋转是“倒置”或“反转”。

代码是:

Rotate up = SCNVector3(x:1, y:0, z:0)
Rotate down = SCNVector3(x:-1, y:0, z:0)
Rotate left = SCNVector3(x:0, y:1, z:0)
Rotate right = SCNVector3(x:0, y:-1, z:0)
SCNAction.rotateByAngle(CGFloat(M_PI_2), aroundAxis:vector, duration:1)

非常简单直接。

为什么会发生这种情况的任何线索?

我是否必须检查正在运行的操作系统或金属,然后应用正确的旋转?

THX

1 个答案:

答案 0 :(得分:0)

在Apple开发者论坛中,Apple员工证实了这一点。

Apple Developer Forum question & answer

  

这是对的。 rotateByAngle上的行为是错误的(倒置)   在10.11和iOS9之前,它现在已经修复。向后兼容性   确保(在iOS9 / 10.11之前链接的应用程序将继续   运行相同)。如果您正在构建一个新的应用程序并使用它   API并希望支持以前的版本,然后是的,你必须这样做   检查您正在运行的操作系统的版本。另一种选择是使用   " rotateByX:y:z:持续时间:"变体。