Come creare Componenti solo per XR

Molti componenti sono necessari solo una volta avviata una sessione VR o AR.

Per assicurarsi che i componenti non vengano aggiornati al di fuori delle sessioni XR, puoi utilizzare il seguente snippet di codice.

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

    /* La sessione potrebbe essere già attiva */
    this.active = !!this.engine.xr;
  }

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

  update() {
    /* Viene chiamato solo quando xrSession è valida */
  }

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

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

(Dis)attivare altri Componenti 

Se vuoi disattivare/attivare altri componenti in base allo stato della sessione, senza modificare il loro codice, puoi usare i componenti vr-active-mode-switch, che disattiveranno/attiveranno i componenti a seconda che l’utente sia in una sessione XR o meno.