我有一个使用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>
我想选择或握住一个对象,然后随着控制器的移动来移动它。但是我还没有找到控制器运动的事件。尽管 mouseup 和 mousedown 可用,但 Mousemove 似乎不可用。
答案 0 :(得分:2)
使用tick
方法。如果要跟踪实体位置或旋转,请执行以下操作:
AFRAME.registerComponent('track', {
init: function () {
this.trackedEl = document.querySelector('#trackedEntity');
},
tick: function () {
this.el.object3D.position.x = this.trackedEl.object3D.position.x;
}
});
请参见demo,其中红球跟踪相机的x位置(用wasd键移动)。您可以为要跟踪的控制器实体使用适当的选择器来执行类似的操作。例如:document.querySelector('[laser-controls]');