Контроллеры WebXR для позиционирования в Three.jsJavascript

Форум по Javascript
Ответить
Anonymous
 Контроллеры WebXR для позиционирования в Three.js

Сообщение Anonymous »

В Three.js VR я получаю ссылки на контроллеры, как показано в коде ниже. Существует два способа получить объекты контроллера для двух разных целей: кнопок и положения/вращения.
controller1 предназначен для кнопок, а controllerPos1 предназначен для положения/вращения:

Код: Выделить всё

var controller1, controller2;
var controllerPos1, controllerPos2;
try
{
var session = renderer.xr.getSession(), i = 0;
if (session)
for (var source of session.inputSources)
if (source && source.gamepad && source.handedness)
switch (source.handedness)
{
case "left":
controller1 = source.gamepad; // left controller for buttons
controllerPos1 = renderer.xr.getController(i++); // controller with index 0 but not guaranteed to be left
break;
case "right":
controller2 = source.gamepad; // right controller for buttons
controllerPos2 = renderer.xr.getController(i++); // controller with index 1 but not guaranteed to be right
break;
}
}
catch (error) { console.error(error.stack); }
controller1 работает достаточно хорошо и всегда является левым контроллером. То же самое для контроллера2 (правый контроллер). Доступ к кнопкам идеальный. Но мне еще нужны должности контролеров. ControllerPos1 и 2 вроде работают, но только иногда. И индекс не гарантирует получение правильного контроллера. Думаю, я делаю что-то не так.
У меня два вопроса:
  • Во время выполнения объекты перестают работать, и мне нужно снова запустить приведенный выше код. Я не знаю, когда это происходит и почему (вероятно, из-за сборки мусора). Я поддерживаю ссылки во время выполнения, они все еще определены и не равны нулю. Но они перестают обновляться. Есть ли способ сохранить их лучше?
  • Мне нужно, чтобы var ControllerPos1 = ??? ВСЕГДА был левым контроллером. Есть ли способ проверить, какой контроллер он представляет? Индекс 0 может быть левым или правым, а индекс 1 может быть правым или левым. Он переключается случайным образом во время выполнения (возможно, из-за Q1).


Подробнее здесь: https://stackoverflow.com/questions/797 ... n-three-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»