有人知道如何在A-Frame中获得Oculus Go控制器的方向向量吗?
我想了解Oculus Go控制器的方向,并在游戏中使用它。我了解激光控制所使用的raycaster组件的“方向”属性具有该值,并尝试了以下代码。
<a-scene>
<!-- laser-controls for Oculus Go controller -->
<a-entity id="ctl" laser-controls></a-entity>
<!-- a-text for debug -->
<a-text id="txt" value="" position="0 2 -2" align="center"></a-text>
</a-scene>
<script>
const ctl = document.getElementById("ctl");
const txt = document.getElementById("txt");
ctl.addEventListener("triggerdown", (evt) => {
const ray = ctl.getAttribute("raycaster");
txt.setAttribute("value", JSON.stringify(ray.direction));
});
</script>
但值始终为{“ x”:0,“ y”:0,“ z”:-1}(默认值)。 请告诉我!
答案 0 :(得分:0)
减去点和控制器位置的向量。
var point = new THREE.Vector3(0, 0, -1);
controllerEl.object3D.localToWorld(point);
var worldDirection = point.sub(controllerEl.object3D.position);
worldDirection
是来自控制器的向量,在世界空间中与控制器直接面对。