【发布时间】:2016-07-29 04:06:38
【问题描述】:
我有一个 SCN 节点,我已将其转换为所需的旋转和角度。
我现在想在它的新 x 轴上无限旋转它,但我似乎无法让它旋转 360 度,它只是稍微移动。
let spin = CABasicAnimation(keyPath: "rotation")
spin.fromValue = NSValue(SCNVector4: SCNVector4(x: item.rotation.x, y: item.rotation.y, z: item.rotation.z, w: item.rotation.w))
spin.toValue = NSValue(SCNVector4: SCNVector4(x: Float(2*M_PI), y: item.rotation.y, z: item.rotation.z, w: item.rotation.w))
spin.duration = 3
spin.repeatCount = .infinity
item.addAnimation(spin, forKey: "spin around")
请注意,我从较早的问题中找到了旋转代码,它按预期工作,但如果我想在转换后的节点上旋转,则不行。
编辑:转换代码:
self.item.transform = SCNMatrix4Mult(SCNMatrix4Mult(SCNMatrix4MakeScale(1.1, 1.1, 1.1), SCNMatrix4MakeRotation(2.2, 228.0, 120.0, 55.2)), SCNMatrix4MakeTranslation(-2.5, 12, 6))
self.item.pivot = SCNMatrix4MakeTranslation(0, 0, 4)
self.item.transform = SCNMatrix4Mult(SCNMatrix4MakeTranslation(0, 0, 4), item.transform)
【问题讨论】:
-
也许将转换后的节点放入容器节点(无几何形状或变形)并旋转容器节点。
-
这有点道理。该项目是从 DAE 文件加载的,所以我不确定如何将 rootNode 及其子节点放入容器节点并将其用于场景
标签: ios swift rotation scenekit