【发布时间】:2017-05-25 09:58:02
【问题描述】:
我正在尝试找出在只有一个 Vive 控制器的情况下是否有办法确定正在使用哪个 Vive 控制器。使用 OpenVR,此信息可用。我想知道 A-Frame 是否可以做到这一点?
【问题讨论】:
我正在尝试找出在只有一个 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 当前仅使用 Gamepad 数组的索引来确定左/右。要手动检查连接的是哪个控制器,您可以调用 Gamepad API:
navigator.getGamepads();
【讨论】: