Есть ли способ имитировать устройства ввода VR на WebVR - A-Frame? - PullRequest
0 голосов
/ 01 июня 2018

В настоящее время я использую A-Frame для создания приложений WebXR (WebVR), и не всегда у меня есть контроллеры (Oculus Touch, Vive Controls) для тестирования.Есть ли способ «симулировать» события, которые излучают разные контроллеры?

1 Ответ

0 голосов
/ 01 июня 2018

Я не уверен насчет более низких уровней, но у меня есть идея о более высоких уровнях: если у вас есть свои Vive-контроллеры, и вы хотите протестировать события касания Oculus, вы можете сделать некоторое отображение.

Я бы сделал компонент, перехватывая исходные события и испуская новые с такими же деталями:

AFRAME.registerComponent("event-mapper", {
  init: function() {
    let viveEvents = ["menuup", "menudown"]
    let oculusEvents = ["gripdown", "gripup"]
    viveEvents .forEach((event, index) => {
      this.el.addEventListener(event, (e) => {
        this.el.emit(oculusEvents [index], {detail: e})
      })
    })
  }
}

Если вы хотите, чтобы он был «динамическим», вы могли бы использовать реальную карту () вместо двухмассивы, но здесь это кажется избыточным.

Кроме того, при включении detail в отправляемое событие все детали, значения, цели также передаются с новым событием.


Поэтому, когда вы хотите, чтобы ваша сущность реагировала на сопоставленные события, вы можете просто сделать:
<a-entity event-mapper></a-entity>

Проверьте это в моей скрипке (сопоставил некоторые события мыши снаверх)

...