Я не уверен насчет более низких уровней, но у меня есть идея о более высоких уровнях: если у вас есть свои 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>
Проверьте это в моей скрипке (сопоставил некоторые события мыши снаверх)