以编程方式更改webvr相机视图

时间:2017-12-11 21:43:10

标签: javascript aframe webvr

我想以编程方式在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));

这适用于普通模式,但在纸板模式下,相机无法移动。如何以编程方式在纸板视图模式下移动相机?

1 个答案:

答案 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});