2015-04-12 78 views
0

我試圖讓子對象跟隨父母的位置,並像一個正常的孩子,但我希望它保持它的旋轉不變。THREE.JS,忽略父母的輪轉

什麼是在不影響性能的情況下做到這一點的最佳方式(我在cpu預算上已經運行了2名工作人員並擁有大量對象)? 是否有隻允許兒童姿勢受到影響的設置?

另外一個重要的事情是,當父母被旋轉時,孩子的位置應該跟隨那個旋轉。

回答

1

您想防止子對象在父對象旋轉時旋轉。

這兩種模式之一應該做你想做的。他們有不同的行爲。

第一種模式:

var gyro = new THREE.Gyroscope(); 

scene.add(parent); 
parent.add(gyro); 
gyro.add(child); // add child to gyroscope 

child.position.set(x, y, z); 

第二個模式:

object = new THREE.Object3D(); 
object.position.set(x, y, z); // child's desired position relative to parent 

scene.add(parent); 
parent.add(object); // add object to parent 
scene.add(child); // add child to scene 

在第二種情況下,你必須手動更新孩子的位置渲染循環裏面,像這樣:

child.position.setFromMatrixPosition(object.matrixWorld); 

three.js r.71

+0

這個答案對你有幫助嗎? – WestLangley