A-Frame:如果只有一个控制器打开,有没有一种简单的方法来确定正在使用哪个Vive控制器



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

设置控制器时,设置了惯用手:

<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 当前仅使用游戏手柄数组的索引来确定左/右。要手动检查连接的控制器,可以调用游戏板 API:

navigator.getGamepads();

最新更新