2014-05-21 146 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