8

我目前正在设计的游戏需要一个第一人称控制器,幸运的是 Three.js 也提供了该类。

但是我无法阻止相机飞来飞去。我知道鼠标移动会导致苍蝇,因为它会在我移动鼠标时发生。但是阅读 js 代码,我找不到导致这种运动的属性。这是我启动控件的方式:

controls = new THREE.FirstPersonControls(camera);
controls.movementSpeed = 0.1;
controls.lookSpeed = 0.001;
controls.lookVertical = true;

当我不移动鼠标时,我不想改变视图方向。

任何想法 ?

4

2 回答 2

3

请记住,webGL 中的 FPS 样式鼠标移动只能在全屏模式下使用。如果应用程序在标准窗口模式下运行,则光标是可见的,并且应用程序无法检测到越过窗口边缘的光标移动。这使得无法以 FPS 样式环顾四周(当光标到达窗口边缘时,视线移动停止)。

PointerLockControls这可能是演示要求您切换到全屏模式的主要原因。

FirstPersonControls鼠标到达边缘时,外观移动会继续。这种方法在窗口模式下效果很好。

于 2014-01-21T11:22:50.463 回答
2

您可能想改用 PointerLockControls

在此处查看示例: https ://github.com/mrdoob/three.js/blob/master/examples/misc_controls_pointerlock.html

于 2013-07-02T10:32:04.853 回答