在我的游戏中使用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
答案 0 :(得分:0)
在Apple开发者论坛中,Apple员工证实了这一点。
Apple Developer Forum question & answer
这是对的。 rotateByAngle上的行为是错误的(倒置) 在10.11和iOS9之前,它现在已经修复。向后兼容性 确保(在iOS9 / 10.11之前链接的应用程序将继续 运行相同)。如果您正在构建一个新的应用程序并使用它 API并希望支持以前的版本,然后是的,你必须这样做 检查您正在运行的操作系统的版本。另一种选择是使用 " rotateByX:y:z:持续时间:"变体。