我想以编程方式在webvr场景中移动视图的位置。为此,我使用的是position.add方法。
以下是我以编程方式移动相机的方法:
<a-entity position="33 0 -33" rotation="0 180 0" look-controls id="camera"
camera="userHeight: 1.6" listener></a-entity>
Camerage搬到这里:
var obj3d = document.querySelector("#camera").object3D;
var angleobj = obj3d.getWorldDirection();
angleobj.y = 0;
obj3d.position.add(angleobj.multiplyScalar(0.004*3));
这适用于普通模式,但在纸板模式下,相机无法移动。如何以编程方式在纸板视图模式下移动相机?
答案 0 :(得分:1)
据我所知,一旦你切换到&#34; VR模式&#34;,你可以使用其他相机而不是&#34; VR模式&#34;。
我认为您应该收听VR进入/退出事件,并更改相机参考:
this.el.sceneEl.addEventListener('enter-vr',() => {
obj3d = document.querySelector("#camera").object3D;
}
this.el.sceneEl.addEventListener('exit-vr',() => {
obj3d = document.querySelector("#camera").object3D;
}
<小时/> 请重新考虑,如果有必要,当用户移动头部,相机变得狂野时,它会变得非常头晕,非常快。
A-frame的迭戈马科斯在他的anwsers中经常推荐视觉指示,而不是这些选项。
如果以上操作不起作用,请尝试抓取相机实体,而不是它的object3D:
var obj3d = document.querySelector("#camera");
并使用setAttribute()方法移动它
obj3d.setAttribute("position", {x: _x, y: _y, z: _z});