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.