如何获得一个孩子对象的全球/世界的位置?

如何获得Object3D在另一个Object3D中的全局位置?

build立:

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); 

笔记:

我认为这是做到这一点的方法:

 console.log(child.localToWorld(parent.position)); 

…但它给我(100,100,100) ,而不是(200,200,200)

第一个电话

 scene.updateMatrixWorld(); 

或者在你的例子中,调用就足够了

 parent.updateMatrixWorld(); 

然后提取世界的位置

 var vector = new THREE.Vector3(); vector.setFromMatrixPosition( child.matrixWorld ); 

然而在实践中,渲染器在每个渲染循环中为你调用updateMatrixWorld() ,所以你不必这样做。

编辑:更新到three.js r.65