2016-12-22 4 views
0

アプリケーションを実行するとノードが回転しません。回転をどのように変更しても、ノードは '0,0,0,0'のように残ります。ノードは回転していませんか?

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) 

} 

} 

答えて

0

Y軸周りの45°だけ回転を適用するには、のように回転を指定する必要があります同様にあなたがX又はZ軸周りに回転している場合は、正しくXYZ軸を発現確保

self.rotation = SCNVector4Make(0, 1, 0, 45 * M_PI/180.0) 

また、あなたはまたのような回転を指定するeulerAnglesプロパティを使用することができます。

self.euelerAngles = SCNVector3Make(0, 45 * M_PI/180.0, 0) 
関連する問題