一人称シューティング スタイルのコントロールを使用して、ゲームパッドを使用して Three.js でカメラを回転させようとしています。
ブラウザはゲームパッドを検出して入力を認識しますが、カメラの回転順序が間違っています。カメラのローカル Y 軸を中心に回転すると、ローカル X 回転も考慮されますが、これは望ましくありません。
- 私が欲しいもの: http://jsfiddle.net/fYtwf/3/
- 何が起きているか: http://jsfiddle.net/fYtwf/2/
私はこの男と同じ問題を抱えているようですが、彼の問題は Three.js r54 を使用して解決され、私は r60 を使用しています。彼はそれを機能させるように設定camera.eulerOrder = "YXZ";
しましたが、現在の同等物camera.rotation.order = "YXZ";
は私には機能しないようです.
Three.js の組み込みの「FirstPersonControls」クラスは知っていますが、コントローラーの入力を受け入れず、後で他の非移動コントロールを押し込むのが面倒になるため、私には適していません。私は gamepad.js も知っていますが、それを使用することに興味はありません。
誰でも助けることができますか?
私のローテーションコード:
function pollGamepad()
{
gamepad = navigator.webkitGetGamepads()[0];
//Rotation
if(gamepad.axes[3] > 0.20)
{
camera.rotateX(-gamepad.axes[3] * 0.02);
}
if(gamepad.axes[3] < -0.20)
{
camera.rotateX(-gamepad.axes[3] * 0.02);
}
if(gamepad.axes[2] < -0.20)
{
camera.rotateY(-gamepad.axes[2] * 0.02);
}
if(gamepad.axes[2] > 0.20)
{
camera.rotateY(-gamepad.axes[2] * 0.02);
}
}