Как я могу отслеживать события перемещения контроллера с WebVR и A-Frame? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть страница WebVR, сделанная с помощью A-Frame, с использованием Oculus Rift с сенсорными контроллерами.У меня есть эти элементы для контроллеров:

<a-entity oculus-touch-controls="hand: right" right-control-listener></a-entity>
<a-entity oculus-touch-controls="hand: left" left-control-listener></a-entity>
<a-entity laser-controls="hand: right" raycaster="objects: .clickable"></a-entity>

Я хочу выбрать или захватить объект и переместить его, когда контроллер движется.Но я не смог найти событие для движения контроллера. Mousemove , по-видимому, недоступен, хотя mouseup и mousedown .

1 Ответ

0 голосов
/ 27 декабря 2018

Используйте метод tick.Если вы хотите отследить положение или вращение объекта, выполните:

AFRAME.registerComponent('track', {
  init: function () {
     this.trackedEl = document.querySelector('#trackedEntity');
  },

  tick: function () {
     this.el.object3D.position.x = this.trackedEl.object3D.position.x;
  }
});

См. Демонстрацию , где красный шар отслеживает положение x камеры (перемещается с помощью клавиш wasd).Вы можете сделать нечто подобное, используя соответствующий селектор для объекта контроллера, который вы хотите отслеживать.например: document.querySelector('[laser-controls]');

...