Как включить геймпад в режиме рабочего стола в aframe v1.0.4 +? - PullRequest
0 голосов
/ 23 апреля 2020

AFrame имеет множество встроенных функций, таких как поддержка контроллеров, таких как геймпады.
В своей документации они рекомендуют использовать компонент "tracked-controls" , который, в свою очередь, выберет правильный Компонент устройства в соответствии с тем, что доступно для браузера. Кажется, это не работает для меня, когда в режиме рабочего стола в aframe v1.0.4

я использую

  • Chrome v81.0.4044.122 (windows)
  • xbox gamepad
  • aframe v1.0.4 (последний пакет npm на момент написания этой статьи)

Я могу найти геймпад при запросе браузера gamepad api напрямую .

Я объявляю свою сущность так: <a-entity mycomponent tracked-controls></a-entity>
Затем я вижу, что в рамке преобразуем это в <a-entity mycomponent tracked-controls-webxr></a-entity>, как объяснено в документации.

В моем пользовательском компоненте mycomponent Затем я хочу прослушать события геймпада, например, так:

events: {
      "controllerconnected": function () {
         log.info("controllerconnected");
      },
      "buttonchanged": function () {
         log.info("buttonchanged");
      }
   }, 

Но мне так и не удалось получить эти события.

Поэтому я покопался в исходном коде, чтобы увидеть, когда подключается aframe. это внутренние слушатели событий геймпада, и из того, что я могу прочитать, все сводится к зависимости от переменной isWebXRAvailable в режиме рабочего стола И присутствию компонента tracked-controls-webxr.

var isWebXRAvailable = module.exports.isWebXRAvailable = !window.debug && navigator.xr !== undefined;

Что !window.debug исключит практически каждый браузер на рабочем столе?

Так что мой вопрос Хен, игровые планшеты вообще должны поддерживаться в режиме рабочего стола?
Или я полностью упустил возможность указать, как использовать эту функцию, и если да, пожалуйста, укажите мне правильное направление:)

1 Ответ

0 голосов
/ 23 апреля 2020

отслеживаемые элементы управления предназначены для пространственно отслеживаемых элементов управления, таких как Vive Wands или Oculus Touch, поставляемых с гарнитурами VR. Нет стандартной поддержки традиционных геймпадов. Вы можете использовать Gamepad API для интеграции вручную или посмотреть Move-Controls

...