Javascript A-Frame:如何获得虚拟现实摄像头

Javascript A-Frame:如何获得虚拟现实摄像头,javascript,camera,aframe,virtual-reality,stereo-3d,Javascript,Camera,Aframe,Virtual Reality,Stereo 3d,在本例中: 我已经注册了一个组件,它可以向用户看到的方向发射炮弹(稍微提高仰角) 空格键或屏幕点击启动-请确保向地平线上方看 在移动vr(立体摄像机)模式下失败: 投射物继续发射,但从单声道相机的默认方向发射,而不是从立体相机发射 我正在使用: var-cam=document.querySelector('a-scene').camera.el.object3D; var camVec=new THREE.Vector3(); var camDir=cam.getWorldDirection(

在本例中:
我已经注册了一个组件,它可以向用户看到的方向发射炮弹(稍微提高仰角)

空格键
屏幕点击
启动-请确保向地平线上方看

在移动vr(立体摄像机)模式下失败:
投射物继续发射,但从单声道相机的默认方向发射,而不是从立体相机发射

我正在使用:
var-cam=document.querySelector('a-scene').camera.el.object3D;
var camVec=new THREE.Vector3();
var camDir=cam.getWorldDirection(camVec)
获取摄像机信息并将弹丸吐回

查询:
如何获取立体相机信息

问题将由THREE.js中的此错误引起

按照文档中的解决方法,这里的代码在我的任务2上使用正确的方向跟踪

(这里还有一些其他的变化:为了在我的虚拟现实耳机上测试这一点,我还必须升级到a-Frame 1.1.0,并让代码在计时器上发射球,因为我在使用它时没有任何按键可按!但这两个都不足以解决问题)

此代码将根据需要设置CamDir

var camQ = new THREE.Quaternion();
cam.updateMatrixWorld();
camQ.setFromRotationMatrix(cam.matrixWorld);
var camDir = new THREE.Vector3(0, 0, 1);
camDir.applyQuaternion(camQ);

下面的代码也可以工作(而且效率更高),但不太容易理解

var camDir = new THREE.Vector3();
var e = cam.matrixWorld.elements;
camDir.set(e[ 8 ], e[ 9 ], e[ 10 ]).normalize();
我从这里捡到的:

我在这里找到了链接:


(但我找不到任何参考资料来解释为什么这些组件matrixWorld.elements是用于获取方向的正确组件)。

抱歉,我确信它正在工作(删除了anwser,因为它不工作),我将尝试解决它并提供帮助,也许其他人也会。谢谢,@Piotradamilewski-我不明白为什么这应该如此模糊:文档清楚如何在相机上安装一个可能不明智的HUD,但不清楚当用户切换到VR时如何应用?嘿,也许问题是:光标是如何做到的?我刚订购了一个新的耳机,将对此进行测试,如果它对我有效,将接受回答!谢谢