Table of Contents

Session-flusssteuerung

Während der Ausführung einer Session kann es notwendig sein, Session-Komponenten zu modifizieren, was ein Anhalten und Neustarten der Session erfordert. Gelegentlich muss auch die Ausgabe bestimmter Session-Elemente gestoppt werden. Dieser Artikel erklärt die Steuerung des Session-Ablaufs.

Voraussetzungen

Session-zusammenstellung

Die Zusammenstellung erfolgt typischerweise automatisch beim Session-Start.

Dieser Code initiiert implizit die Zusammenstellung:

Session.StartSession();

In bestimmten Fällen, wie der Verfügbarkeits- und Geräteunterstützungsprüfung, kann Assemble() manuell aufgerufen werden:

StartCoroutine(Session.Assemble());

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

Session starten

AutoStart steuert den automatischen Session-Start. Bei true (Standard) startet die Session automatisch mit MonoBehaviour.Start().

Für manuellen Start muss AutoStart auf false gesetzt werden. Danach startet StartSession() die Session.

Session.StartSession();

Session stoppen

StopSession(bool) hält die Session an.

Session.StopSession(keepLastFrame);

Der Parameter keepLastFrame bestimmt, ob das letzte physische Kamerabild nach dem Stopp beibehalten wird. Dies verhindert Bildflackern beim Wechsel zwischen Sessions.

[!HINWEIS] keepLastFrame wirkt nur bei Sessions mit EasyAR-eigener Bilddarstellung. Bei Nutzung von AR Foundation oder Headsets ist der Parameter meist wirkungslos.

Session-ausgabe stoppen

Die Session-ausgabe lässt sich über enabled kontrollieren.

Dieser Code stoppt alle Session-ausgaben bei laufender Session (keine Bildupdates, keine Transform-Änderungen):

Session.enabled = false;

Darstellung physischer Kamerabilder stoppen

Die Darstellung steuert ARAssembly.CameraImageRenderer.

So wird die Kamerabilddarstellung deaktiviert:

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

Vorab muss die Existenz von ARAssembly.CameraImageRenderer geprüft werden.

[!HINWEIS] ARAssembly.CameraImageRenderer ist nur bei EasyAR-gesteuerter Darstellung relevant. Bei AR Foundation oder Headsets erfolgt die Darstellung durch deren SDKs.

Nächste schritte