我试图找出是否有办法确定当只有一个Vive控制器时使用哪个Vive控制器。使用OpenVR,可以获得此信息。我想知道A-Frame是否可以实现这一目标?
答案 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();