请重新考虑,如果有必要,当用户移动他的头并且相机疯狂时,它会变得非常头晕,真的很快。
我想在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});