Three.js First Person Controls一直移动相机

时间:2013-07-01 13:58:26

标签: user-controls three.js

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

但是我不能阻止相机飞来飞去。我知道鼠标移动会导致飞行,因为它会在我移动鼠标时立即发生。但是阅读js代码,我找不到引起这种运动的因素。以下是我启动控件的方法:

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

当我不移动鼠标时,我不希望视图方向发生变化。

任何想法?

2 个答案:

答案 0 :(得分:2)

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

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

使用FirstPersonControls,当鼠标到达边缘时,外观移动会继续。这种方法在窗口模式下运行良好。

答案 1 :(得分:1)

您可能希望使用PointerLockControls

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