编程方式更改WebVR摄像头视图



我想在WebVR场景中编程地移动视图的位置。为此,我正在使用partion.ADD方法。

这是我以编程方式移动相机的方式:

 <a-entity position="33 0 -33" rotation="0 180 0" look-controls id="camera" 
       camera="userHeight: 1.6" listener></a-entity>

摄像机已移动到这里:

 var obj3d = document.querySelector("#camera").object3D;
 var angleobj = obj3d.getWorldDirection();
 angleobj.y = 0;
 obj3d.position.add(angleobj.multiplyScalar(0.004*3));

这在正常模式下起作用,但是在纸板模式下,相机没有移动。如何以编程方式以纸板查看模式移动相机?

据我所知,一旦切换到" VR模式",就可以使用其他相机以外的其他相机。

我认为您应该听VR Enter/退出事件,然后更改相机参考:

this.el.sceneEl.addEventListener('enter-vr',() => {
     obj3d = document.querySelector("#camera").object3D;
}
this.el.sceneEl.addEventListener('exit-vr',() => {
     obj3d = document.querySelector("#camera").object3D;
}


请重新考虑,如果有必要,当用户移动他的头并且相机疯狂时,它会变得非常头晕,真的很快。

a框架的迭戈·马科斯(Diego Marcos)在他的anwsers中通常建议在哪里展示视觉指示,而不是这样的选择。


如果以上不起作用,请尝试抓住相机实体,而不是其对象3D:

var obj3d = document.querySelector("#camera");

并使用setAttribute()方法

移动它
obj3d.setAttribute("position", {x: _x, y: _y, z: _z});

最新更新