Swift 节点不旋转?
当我运行应用程序时,节点不会旋转。无论我将旋转更改为什么,节点都将保持为“0,0,0,0”Swift 节点不旋转?,swift,rotation,scenekit,Swift,Rotation,Scenekit,当我运行应用程序时,节点不会旋转。无论我将旋转更改为什么,节点都将保持为“0,0,0,0” class CustomSCNNode: SCNNode { var positionToSlideFrom = SCNVector3Zero convenience init(geometry: SCNGeometry, initialPosition: SCNVector3, rotation: Float) { self.init() self.geometry = geom
class CustomSCNNode: SCNNode {
var positionToSlideFrom = SCNVector3Zero
convenience init(geometry: SCNGeometry, initialPosition: SCNVector3, rotation: Float) {
self.init()
self.geometry = geometry
self.position = initialPosition
self.positionToSlideFrom = initialPosition
self.rotation.y = rotation
}
}
//节点传递到要由用户移动的GeometryNodes中。这就是什么都不发生的地方
class GeometryNodes {
let sphere = CustomSCNNode(geometry: SCNSphere(radius: 0.05), initialPosition: SCNVector3(0,1.3,0), rotation: -45)
func addNodesTo(_ parentNode: SCNNode) {
sphere.rotation.y = -45
parentNode.addChildNode(sphere)
}
func slideFunction(_ node: CustomSCNNode, translation: Float) {
//Can't add anything yet due to rotation not working
}
func slideFunction2(_ node: SCNNode, translation: Float) {
node.position.z = translation
//node.position.x = translation
}
func slide(xTranslation: Float) {
slideFunction(sphere, translation: xTranslation)
}
func slide2(zTranslation: Float) {
//let gameScene = BallScene()
slideFunction2(sphere, translation: zTranslation)
}
}
要围绕Y轴应用45度旋转,需要将旋转指定为:
self.rotation = SCNVector4Make(0, 1, 0, 45 * M_PI / 180.0)
同样,如果绕X或Z轴旋转,请确保正确表示XYZ轴
或者,也可以使用“属性”指定旋转,如下所示:
self.euelerAngles = SCNVector3Make(0, 45 * M_PI / 180.0, 0)