您可以创建一个组件,该组件可以监听“enter-vr”和“exit-vr”事件,并相应地设置活动摄像头:
AFRAME.registerComponent('scenelistener',{ init:function(){ let vrcam = document.querySelector("#cam-vr"); let dcam = document.querySelector("#cam-desktop"); let vrmode = false; this.el.sceneEl.addEventListener('enter-vr',function(){ if(!vrmode){ dcam.setAttribute('active',false); vrcam.setAttribute('active',true); vrmode!=vrmode; } } this.el.sceneEl.addEventListener('exit-vr',function(){ if(vrmode){ dcam.setAttribute('active',true); vrcam.setAttribute('active',false); vrmode!=vrmode; } } } });
实际上,您可以将听众粘贴到任何地方,而且您可以只听取任何事件并根据收到的事件做相应的事情,我只想向您展示这个概念。 我不确定如果2+相机处于活动状态会发生什么,所以我在变化时将它们弄错了。 的 UPDATE 强> 我没有看到相机是实体,而不是基元,所以你必须设置这样的属性: setAttribute('camera','active',true) 我有一些光标问题,所以我使它可见和不可见,具体取决于vr状态。 工作小提琴(至少是相机开关) 这里 。
setAttribute('camera','active',true)