【问题标题】:A-Frame: Is there an easy way to determine which Vive controller is being used if only one turned on?A-Frame:如果只打开一个,有没有一种简单的方法来确定正在使用哪个 Vive 控制器?
【发布时间】:2017-05-25 09:58:02
【问题描述】:

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

【问题讨论】:

    标签: aframe htc-vive


    【解决方案1】:

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

    <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();
    

    【讨论】:

    • 另请注意,在 Vive 上,手感不是预先分配给特定控制器(与 Oculus Touch 相反),而是在运行时根据控制器与头部的相对位置确定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    相关资源
    最近更新 更多