XR専用コンポーネントの作成方法

多くのコンポーネントは、VRまたはARセッションが開始されたときにのみ必要です。

コンポーネントがxrセッション以外では更新されないようにするには、以下のコードスニペットを使用できます。

import {Component} from '@wonderlandengine/api';

export class ActiveOnlyInVr extends Component {
  static TypeName = 'active-only-in-vr';

  start() {
    this.engine.onXRSessionStart.add(this.onXRSessionStart);
    this.engine.onXRSessionEnd.add(this.onXRSessionEnd);

    /* セッションがすでにアクティブな可能性があります */
    this.active = !!this.engine.xr;
  }

  onDestroy() {
    this.engine.onXRSessionStart.remove(this.onXRSessionStart);
    this.engine.onXRSessionEnd.remove(this.onXRSessionEnd);
  }

  update() {
    /* xrSessionが有効な場合にのみ呼び出されます */
  }

  onXRSessionStart = s => {
    this.active = true;
  };

  onXRSessionEnd = s => {
    this.active = false;
  };
});

他のコンポーネントの(非)アクティブ化 

セッションの状態に基づいて他のコンポーネントを無効化/有効化したい場合、コードを変更せずに、vr-active-mode-switchコンポーネントを使用できます。これにより、ユーザーがXRセッション中かどうかに応じてコンポーネントを無効化/有効化します。