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
- Grundlegendes Verständnis von Sessions durch ARSession Einführung (Konzepte, Komponenten und Arbeitsablauf)
- Kenntnisse zum Erstellen von Sessions
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]
keepLastFramewirkt 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
- Erkunden Sie den Zugriff auf AR-funktionskomponenten für erweiterte Kontrollmöglichkeiten
- Erfahren Sie, wie Sie Session-ergebnisse abrufen
- Lesen Sie zur Verfügbarkeits- und Geräteunterstützungsprüfung