2017-07-05 14 views
0

デスクトップとVRの切り替えはどのようにできますか? 私はデスクトップ上でマウスカーソルを使用したいと思います.VRに入ると、カーソルを融合させて別のカメラに切り替える必要があります。ここフレーム間カメラ切り替え出口vrと入力vr

は私のコードです:

<a-entity id="cam-desktop" camera="userHeight: 1.6; zoom:1 " look-controls mouse-cursor> 
</a-entity> 


<a-entity id="cam-vr" camera="userHeight: 1.6; zoom:1 " look-controls> 
    <a-animation begin="cursor-fusing" delay=" 3000" attribute="camera.zoom" from="1" to="4" dur="1000"></a-animation> 
    <a-animation begin="click" delay="500" attribute="camera.zoom" from="4" to="1" dur="1000"></a-animation> 
    <a-entity cursor="fuse: true; fuseTimeout:4000" geometry="primitive: ring; radiusInner: 0.02; radiusOuter: 0.03; thetaLength: 360; thetaStart: 0" rotation="0 0 90" position="0 0 -1" material="color: black; side: double; shader: flat"> 
    <a-animation begin="cursor-fusing" attribute="geometry.thetaLength" from="360" to="0" easing="linear" dur="3000"></a-animation> 
    <a-animation begin="mouseleave" attribute="geometry.thetaLength" from="360" to="360" dur="0"></a-animation> 
    </entity> 
</a-entity> 

はどうもありがとうございました!

答えて

1

あなたは「-VRを入力してください」と「終了-VR」のイベント、それに応じてアクティブなカメラを設定するlistenesコンポーネント、作成することができます:実際には、あなただけのどこにでもリスナーを貼り付けることができ

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状態で。
作業フィドル(少なくともカメラスイッチ)here

+0

私はそれを得ることはありません、それは動作しません: -/ vr-camとdesktop-camはなぜ同時にfalseでtrueですか? #vrではcam-vrがアクティブで、非vrではアクティブではありません。 #vrでアクティブではない非vrでアクティブな#cam-desktop。 カメラは同時にアクティブではありませんでした。 :-( – Stephan

+0

私はこれが好きで、同時にアクティブではないようにしました。次の行には、適切なアクティブなものを設定しました。私は単純なチェックにスワップできます。 –

+0

@Stephanは簡単なスイッチで更新しました。 –

関連する問題