我正在使用PointerLockControls来控制我的相机,但是我怎样才能将当前视图的旋转加载到另一个除了场景之外的任何其他相机? 我可以获得yawObject位置,但yawObject旋转不会显示我使用PointerLockControl相机的确切视图。例如,如果我输出以下内容: yawObject位置:183.91,10.00,-204.16 yawObject rotation:0.00,73.89,0.00 pitchObject位置:0.00,20.00,0.00 pitchObject rotation:-0.10,0.00,0.00
如果我尝试使用以下设置设置没有任何控件的第二台相机: camera2.position.set(183.91,10.00,-204.16); camera2.rotation.set(0.00,73.89,0.00);
生成的camera2视图不一样。
答案 0 :(得分: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