A-Frame:如果只有一个VAL控制器打开,是否有一种简单的方法可以确定使用哪个Vive控制器?

时间:2017-05-23 22:26:25

标签: aframe htc-vive

我试图找出是否有办法确定当只有一个Vive控制器时使用哪个Vive控制器。使用OpenVR,可以获得此信息。我想知道A-Frame是否可以实现这一目标?

1 个答案:

答案 0 :(得分:0)

设置控制器时,设置手性:

<a-entity id="leftHand" vive-controls="hand: left"></a-entity>
<a-entity id="rightHand" vive-controls="hand: right"></a-entity>

看看哪一只手变得活跃。您可以检查其位置/旋转是否为非零。或者在即将发布的版本中,您可以这样做:

AFRAME.registerComponent('controller-connected', {
  init: function () {
    var el = this.el;
    el.addEventListener('controllerconnected', function (evt) {
      console.log(evt.detail.component.data.hand);
      // Or... console.log(el.getAttribute(evt.detail.name).hand)
    });
  } 
});

<a-entity controller-connected id="leftHand" vive-controls="hand: left"></a-entity>
<a-entity controller-connected id="rightHand" vive-controls="hand: right"></a-entity>

A-Frame目前仅使用Gamepad数组的索引来确定左/右。要手动检查连接的控制器,可以调用Gamepad API:

navigator.getGamepads();