如何獲得Object3D在另一個Object3D中的全局位置?如何獲得子對象的全局/世界位置?
設置:
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)。
謝謝WestLangley,下面你的建議我這樣做: **的console.log(parent.position.getPositionFromMatrix(child.matrixWorld))** ,但由於現場的代碼是actruly一個循環,圍繞移動裏面的東西,這會導致一些奇怪的構件,其中父對象的速度會顯着增加(這是唯一的console.logging childs位置) !由於我不明白到底發生了什麼(我會讀到它),我最終做了: ** console.log(parent.position.clone()。getPositionFromMatrix(child.matrixWorld))** *再次感謝。* – TunnelVision 2013-02-26 23:30:14
不,不!在渲染循環外部創建一個單獨的矢量,並在渲染循環內爲其指定位置值。 – WestLangley 2013-02-27 00:36:34
啊,現在我明白了:) – TunnelVision 2013-02-27 14:59:08