2014-05-21 152 views
0

我正在使用PointerLockControls來控制攝像頭,但是如何將當前視圖的旋轉加載到除了場景之外的任何其他攝像頭? 我可以得到yawObject的位置,但yawObject的旋轉不顯示我用PointerLockControl相機的確切視圖。例如,如果我輸出以下: yawObject位置:183.91,10.00,-204.16 yawObject旋轉:0.00,73.89,0.00 pitchObject位置:0.00,20.00,0.00 pitchObject旋轉:-0.10,0.00,0.00將PointerLockControl攝像頭視圖加載到另一個攝像頭

如果我嘗試設置沒有任何控件的第二臺攝像機,請使用以下命令: camera2.position.set(183.91,10.00,-204.16); camera2.rotation.set(0.00,73.89,0.00);

由此產生的camera2視圖是不一樣的。

+0

你是如何管理使'pitchObject.position'成爲非零的東西? – WestLangley

+0

對不起,當我寫這個問題時,我的音高和偏差混在一起。我在原始帖子中糾正了它。我基本上想要做的就是捕獲我的指針鎖控制視圖,並保存並稍後加載到沒有控件的相機上。我可以在poniterlockcontrol相機上保存並加載它。 – user3661557

+0

你如何設法讓'pitchObject.position'成爲零以外的東西? – WestLangley

回答

1

如果要創建與由PointerLockControls控制的攝像機具有相同視圖方向的第二個攝像機,關鍵是要查看返回方向矢量的方法PointerLockControls.getDirection()

如果你希望能夠直接設置第二個攝像頭的轉動,你這樣做:

camera2.rotation.order = 'YXZ'; // important! 

. . . 

camera2.rotation.set(pitchObject.rotation.x, yawObject.rotation.y, 0); 

其中

yawObject = controls.getObject(); 

pitchObject = yawObject.children[ 0 ]; 

three.js所r.67

+0

謝謝WestLangley的回答。這非常有幫助:) – user3661557