Я пытаюсь использовать геймпад для поворота камеры в Three.js, используя элементы управления стилем от первого лица.Порядок вращения камеры с тремя .js
Браузер обнаруживает геймпад и распознает его вход, но порядок вращения камеры неправильный. Когда я вращаюсь на локальной оси Y камеры, он учитывает также местное вращение X, что нежелательно.
- Что я хочу: http://jsfiddle.net/fYtwf/3/
- Что происходит: http://jsfiddle.net/fYtwf/2/
Кажется, у меня такая же проблема, как this guy, но его проблема была решена с помощью three.js R54 и я m, используя r60. Он установил camera.eulerOrder = "YXZ";
, чтобы заставить его работать, но текущий эквивалент camera.rotation.order = "YXZ";
, похоже, не работает для меня.
Я знаю о встроенном классе «FirstPersonControls» от Three.js, но он не подходит для меня, так как он не принимает вход контроллера, и было бы бесполезно, если бы он помог другим элементам управления без движения там позже , Я также знаю о 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);
}
}
Спасибо Icemonster, это очень помогло. – user23709
Я просто поместил свою камеру внутри родительского объекта и применил весь перевод и рывок к этому, любой шаг затем применяется к самой камере, и это, кажется, работает очень хорошо, сохраняя все просто. – user23709