Three.JS, la modification de la position d'un enfant de l'objet 3D

Donc en gros j'ai un enfant object3D d'un groupe Object3D, tandis que l'enfant de l'objet [x,y,z] coordonnées sont indiquées par rapport à l'objet de l'espace de l'objet parent, je veux changer l'emplacement de l'enfant de l'objet dans l'espace 3D. J'ai tout d'abord amener l'enfant la position de l'objet par rapport au monde de l'espace.

var wrld_pos = childobject.matrixWorld.multiplyVector3(new THREE.Vector3);

Cela renvoie à trois éléments de vecteur de la position de l'enfant dans le monde de l'espace. Maintenant je souhaite pour fixer la position de mon auto. J'ai donc créer un à trois éléments du vecteur.

var new_pos = THREE.Vector3();
new_pos.x = 1;
new_pos.y = 2;
new_pos.z = 3;

childobject.matrixWorld.setPosition(new_pos);

Fourni la définition de fonction pour setPosition, pour l'essentiel, il définit les trois derniers éléments de l'objet du monde de la matrice des valeurs du vecteur passé en argument, et donc de changer l'emplacement de l'objet dans l'espace. Et pour s'assurer que la matrice des mises à jour à l'issue de ces modifications, j'appelle les fonctions suivantes.

childobject.matrixWorldNeedsUpdate = true;
childobject.updateMatrixWorld();

Maintenant à l'inspection du nouveau monde de la matrice de l'objet, j'ai remarqué que le setPosition fonction ne fait rien, rien du tout.

Pourquoi? Si les exemples de code sont nécessaires, je vous les fournir. Mais la ci-dessus doivent représenter le domaine de l'application et de la syntaxe, j'ai utilisé de façon très précise.

OriginalL'auteur user1349206 | 2012-09-22