0

我试图找出是否有一种方法可以在只有一个控制器时确定正在使用哪个 Vive 控制器。使用 OpenVR,此信息可用。我想知道A-Frame是否可以做到这一点?

4

1 回答 1

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();
于 2017-05-25T01:58:02.197 回答