Включить управление орбитой в VR

Я использую элементы управления орбитой, которые являются частью пакета k-frame Кевина Нго: https://github.com/ngokevin/kframe/tree/master/components/orbit-controls/

элементы управления позволяют вращать камеру вокруг сцены, создавая впечатление поворота сцены вокруг точки обзора. к сожалению, при переходе в режим VR компонент автоматически переключается на элементы управления взглядом от первого лица в центре сцены.

для моего проекта я хочу сохранить перспективу орбиты и контроль орбиты, даже в VR. Я подумал, что этого можно добиться, отключив часть кода после проверки, введен ли VR.

    el.sceneEl.addEventListener('enter-vr', () => {
  if (!AFRAME.utils.device.checkHeadsetConnected() &&
      !AFRAME.utils.device.isMobile()) { return; }
  this.controls.enabled = false;
  if (el.hasAttribute('look-controls')) {
    el.setAttribute('look-controls', 'enabled', true);
    oldPosition.copy(el.getObject3D('camera').position);
    el.getObject3D('camera').position.set(0, 0, 0);
  }
});

Компонент управления орбитой работает непосредственно на камере three.js, а не на уровне кадра - однако управление камерой vr осуществляется с помощью управления кадром. до сих пор все, что я пробовал, заканчивалось с камерой vr в центре сцены..

Мне удалось увидеть камеру, движущуюся вокруг сцены в режиме VR - однако я застрял в своей позиции VR

1 ответ

Решение

Я рекомендую создать и повернуть родителя a-entity модели / сцены вместо. Перемещение камеры столкнется с look-controls как вы уже видели, это будет неудобно для пользователей и может вызвать укачивание.

Другие вопросы по тегам