SCNAction.rotateByAngle 旋转在 El Capitan 或 Metal 中反转
Posted
技术标签:
【中文标题】SCNAction.rotateByAngle 旋转在 El Capitan 或 Metal 中反转【英文标题】:SCNAction.rotateByAngle rotation is inverted in El Capitan or Metal 【发布时间】:2016-01-27 11:46:21 【问题描述】:在我的游戏中使用 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)
非常简单直接。
任何线索为什么会发生这种情况?
我是否应该检查正在运行的操作系统或 Metal,然后应用正确的旋转?
谢谢
【问题讨论】:
【参考方案1】:在 Apple 开发者论坛中,一位 Apple 员工已经证实了这一点。
Apple Developer Forum question & answer
这是对的。 rotateByAngle 的行为错误(倒置) 在 10.11 和 ios9 之前,现在已修复。向后兼容性 确保(在 iOS9 / 10.11 之前链接的应用程序将继续 运行相同)。如果您正在构建一个新应用程序并使用它 API 并希望支持以前的版本,那么是的,您将不得不 检查您正在运行的操作系统的版本。另一种选择是使用 “rotateByX:y:z:duration:”变体。
【讨论】:
以上是关于SCNAction.rotateByAngle 旋转在 El Capitan 或 Metal 中反转的主要内容,如果未能解决你的问题,请参考以下文章