如何使用 WebVR 和 A-Frame 跟踪控制器运动事件



我有一个用A-Frame制作的WebVR页面,使用带有触摸控制器的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>

我想选择或抓取一个对象,并在控制器移动时移动它。但是我找不到控制器移动的事件。鼠标移动似乎不可用,即使鼠标向上向下鼠标也可用。

使用 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]');

最新更新