Wie man XR-exklusive Komponenten erstellt

Viele Komponenten werden nur benötigt, sobald eine VR- oder AR-Sitzung gestartet wird.

Um sicherzustellen, dass Komponenten außerhalb von XR-Sitzungen nicht aktualisiert werden, kannst du den folgenden Code-Schnipsel verwenden.

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);

    /* Sitzung könnte bereits aktiv sein */
    this.active = !!this.engine.xr;
  }

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

  update() {
    /* Wird nur aufgerufen, wenn xrSession gültig ist */
  }

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

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

Andere Komponenten (de-)aktivieren 

Wenn du andere Komponenten basierend auf dem Sitzungsstatus deaktivieren/aktivieren möchtest, ohne deren Code zu ändern, kannst du die vr-active-mode-switch Komponenten verwenden. Diese deaktivieren/aktivieren Komponenten je nachdem, ob der Benutzer in einer XR-Sitzung ist oder nicht.