2017-08-22 3 views
0

Je voulais que tous les SCNNodes tournent autour d'un axe (dit SCNVector3Zero au centre). Mais quand je fais ceci:Est-ce que SceneKit tourne (par: autour: durée :) fonctionne?

for node in nodes { 
    node.runAction(SCNAction.rotate(by: 3.14, around: SCNVector3Zero, duration: 0.5)) 
} 

Rien n'est déplacé. Changé à SCNAction.move au lieu de tourner fonctionne très bien. Une idée?

Je teste dans ARKit.

Répondre

3

SCNVector3Zero est le vecteur de longueur nulle (0, 0, 0), il ne spécifier une direction ou un axe.

À titre d'exemple, pour tourner autour de l'axe z, utilisez

SCNAction.rotate(by: .pi, around: SCNVector3(0, 0, 1), duration: 0.5) 
+0

Merci! Je pense que je ne comprends pas la signification de l'axe autour. Y at-il un moyen de faire pivoter tous les nœuds autour d'une position de nœud (dit en position SCNVector3Zero)? –

+0

@LimThyeChean: Cela peut aider: https://developer.apple.com/documentation/scenekit/scnnode/1408044-pivot: * Déplace l'axe de rotation du noeud. Par exemple, avec une transformation de traduction, vous pouvez faire pivoter un nœud autour d'un point éloigné au lieu de tourner autour de son centre, ... * –