Table of Contents

Session-ablaufsteuerung

Während der Ausführung einer Session kann es erforderlich sein, Session-Komponenten zu ändern, was das Anhalten und Neustarten der Session erfordert. Manchmal müssen auch bestimmte Ausgaben der Session gestoppt werden. Dieser Artikel beschreibt, wie der Ablauf einer Session gesteuert wird.

Voraussetzungen

Session-zusammenstellung

Normalerweise wird der Zusammenstellungsprozess automatisch beim Starten einer Session ausgelöst.

Der folgende Code führt den Zusammenstellungsprozess implizit aus.

Session.StartSession();

In einigen Fällen, z.B. zur vorzeitigen Überprüfung der Verfügbarkeit und Geräteunterstützung, kann die Session-Zusammenstellung auch manuell mit Assemble() ausgelöst werden:

StartCoroutine(Session.Assemble());
Anmerkung

Assemble() gibt eine Coroutine zurück, die über StartCoroutine(IEnumerator) gestartet werden muss.

Session starten

AutoStart steuert, ob eine Session automatisch startet. Wenn AutoStart auf true gesetzt ist (Standardwert), startet die Session automatisch während MonoBehaviour.Start().

Eine Session kann auch manuell gestartet werden, was erfordert, dass AutoStart vorher auf false gesetzt wird. Anschließend kann StartSession() verwendet werden, um die Session zu starten.

Session.StartSession();

Session stoppen

StopSession(bool) kann verwendet werden, um eine Session zu stoppen.

Session.StopSession(keepLastFrame);

Der Parameter keepLastFrame steuert, ob das letzte physische Kamerabild nach dem Stoppen der Session beibehalten wird. Dies ist nützlich beim Wechsel zwischen verschiedenen Sessions, um Flackern zu vermeiden.

Anmerkung

keepLastFrame funktioniert nur bei Sessions, bei denen EasyAR das Rendering übernimmt. Generell ist dieser Parameter bei Verwendung von AR Foundation oder Headsets unwirksam.

Session-ausgabe stoppen

Während eine Session läuft, kann die Ausgabe über enabled gesteuert werden.

Der folgende Code stoppt alle Ausgaben der Session. Die Session läuft weiter, aktualisiert aber keine Inhalte mehr (einschließlich der von EasyAR gerenderten physischen Kamerabilder und aller von EasyAR gesteuerten Node-Transformationen).

Session.enabled = false;

Rendering physischer kamerabilder stoppen

ARAssembly.CameraImageRenderer kann verwendet werden, um das Rendering physischer Kamerabilder zu steuern.

Der folgende Code stoppt das Rendering physischer Kamerabilder:

if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
    Session.Assembly.CameraImageRenderer.Value.enabled = false;
}

Es ist wichtig, vorher zu prüfen, ob ARAssembly.CameraImageRenderer existiert.

Anmerkung

ARAssembly.CameraImageRenderer ist nur bei Sessions wirksam, bei denen EasyAR das Rendering übernimmt. Generell ist es bei Verwendung von AR Foundation oder Headsets unwirksam, wo das Rendering durch AR Foundation oder das Headset-SDK erfolgt.

Nächste schritte