javascript - que - ¿Cómo obtener la posición global/mundial de un objeto hijo?
obtener ubicacion javascript (2)
¿Cómo obtengo la posición global de un Object3D dentro de otro Object3D?
preparar:
var parent = new THREE.Object3D();
parent.position.set(100, 100, 100);
var child = new THREE.Object3D();
child.position.set(100, 100, 100);
parent.add(child);
scene.add(parent);
notas:
Pensé que esta sería la manera de hacerlo:
console.log(child.localToWorld(parent.position));
... pero me da (100, 100, 100) , no (200, 200, 200) .
En threejs r89 puedes obtener la posición mundial mediante Object3D.getWorldPosition
. No sé cuando fue agregado.
Primera llamada
scene.updateMatrixWorld();
o en su ejemplo, es suficiente llamar
parent.updateMatrixWorld();
Luego extrae la posición mundial
var vector = new THREE.Vector3();
vector.setFromMatrixPosition( child.matrixWorld );
En la práctica, sin embargo, el procesador llama a updateMatrixWorld()
por usted en cada bucle de renderizado, por lo que no es necesario.
EDITAR: actualizado a three.js r.65