Cómo crear Componentes solo para XR

Muchos componentes solo son necesarios una vez que se inicia una sesión de VR o AR.

Para asegurarte de que los componentes no se actualicen fuera de las sesiones de XR, puedes usar el siguiente fragmento de código.

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 sesión podría ya estar activa */
    this.active = !!this.engine.xr;
  }

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

  update() {
    /* Solo se llama cuando xrSession es válida */
  }

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

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

(Des-)Activar otros Componentes 

Si deseas desactivar/activar otros componentes según el estado de la sesión, sin cambiar su código, puedes usar los componentes vr-active-mode-switch, que desactivarán/activarán componentes dependiendo de si el usuario está en una sesión de XR o no.