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 に答える