2013-03-24 161 views
0

我對Threejs有點新鮮,只是想知道如何讓移動的網格物體始終面對場景中的相機。我在容器Object3D中有100個網格物體,並在x和y軸上旋轉這個容器。有沒有辦法迫使容器內的網格始終面向相機?Three.js在移動Object3D的內部旋轉物體始終面向相機

下面是一些示例代碼,我還設置了在的jsfiddle http://jsfiddle.net/nickelWeb/rZtJX/4/

for(var k = 0; k<numMeshes; k++){ 
    meshes[k].lookAt(camera.position); 
} 

我已經嘗試過使用.lookAt()方法,但它似乎並不奏效。我知道有一種方法可以做到這一點,我只是不知道在哪裏看。任何幫助,將不勝感激。謝謝!

回答

2

Object.lookAt()如果對象有旋轉的父項,將無法正常工作。

問題的絕對最簡單的解決方案是固定父對象,並將相機圍繞對象旋轉。

那樣,Object.lookAt()將按預期工作。

更新小提琴:http://jsfiddle.net/rZtJX/5/

three.js所r.57

+0

有什麼辦法,我可以做到這一點,而無需移動相機?像某種globalToLocal轉換? – user2205268 2013-03-24 21:25:53

+2

理論上是,但是「上升」的意義會改變。所以物體會看着相機,但不會是正確的。你可以嘗試'THREE.SceneUtils.detach()',然後是'lookAt()',然後是'THREE.SceneUtils.attach()',但是效率非常低,我不會推薦它。 – WestLangley 2013-03-24 22:33:49

+0

好的,謝謝!我會嘗試你的第一個建議。 – user2205268 2013-03-24 22:50:51