如何获得一个孩子对象的全球/世界的位置?
如何获得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