three.js r91
我在the PointerLockControls example上稍微更改了line 173:
camera.position.set(100, 0, 0);
controls = new THREE.PointerLockControls( camera );
controls.getObject().position.set(100, 0, 0);
scene.add( controls.getObject() );
当我移动鼠标环顾四周时,您可以看到相机的旋转不正确 - 它不是在自身周围旋转而是在其他地方旋转。
您可以看到我添加了controls.getObject().position.set(100, 0, 0);
,尝试解决问题,例如this和this。但它不起作用。
有关完整示例,请参阅this codepen post。
移动鼠标时,如何让相机正常旋转?
答案 0 :(得分:0)
尝试删除 camera.position.set(100,0,0); 行并保留其他人
答案 1 :(得分:0)
我找到了解决方案。
camera.position.set(100, 0, 0);
var cameraPos = camera.position.clone();//save original position
camera.position.set(0, 0, 0);//reset to zero
controls = new THREE.PointerLockControls( camera );
controls.getObject().position.copy(cameraPos);//set original position to the control object
scene.add( controls.getObject() );
这样,camera.position
(相机的本地位置)将始终为(0,0,0)
,但相机的世界位置是正确的。