Ablaufsteuerung von session
Während session ausgeführt wird, müssen manchmal session-Komponenten geändert werden. In diesem Fall muss session gestoppt und neu gestartet werden. Manchmal müssen auch bestimmte Ausgaben von session gestoppt werden. Dieser Artikel beschreibt, wie der Ablauf von session gesteuert wird.
Bevor Sie beginnen
- Lernen Sie die grundlegenden Konzepte, den Aufbau und den Workflow von session über ARSession-Übersicht kennen
- Erfahren Sie, wie Sie session erstellen
session-Assembly
Der Assembly-Prozess wird normalerweise automatisch beim Starten von session ausgelöst.
Der folgende Code führt den Assembly-Prozess implizit aus.
Session.StartSession();
In manchen Fällen, zum Beispiel wenn Sie im Voraus Verfügbarkeit und Geräteunterstützung prüfen müssen, können Sie auch Assemble() verwenden, um den Assembly-Prozess von session manuell auszulösen:
StartCoroutine(Session.Assemble());
Anmerkung
Assemble() gibt eine Coroutine zurück und muss über StartCoroutine(IEnumerator) gestartet werden.
session starten
AutoStart steuert, ob session automatisch gestartet wird. Wenn AutoStart true ist (Standardwert), wird session bei MonoBehaviour.Start() automatisch gestartet.
Session kann auch manuell gestartet werden. Dazu muss AutoStart zuvor auf false gesetzt werden. Danach kann StartSession() zum Starten von session verwendet werden.
Session.StartSession();
session stoppen
Sie können StopSession(bool) verwenden, um session zu stoppen.
Session.StopSession(keepLastFrame);
Der Parameter keepLastFrame steuert, ob das letzte Bild der physischen Kamera nach dem Stoppen von session beibehalten wird. Dies ist nützlich, wenn zwischen verschiedenen sessions gewechselt werden muss, und kann Bildschirmflackern vermeiden.
Anmerkung
keepLastFrame kann nur sessions steuern, deren Bilddarstellung von EasyAR durchgeführt wird. Im Allgemeinen ist dieser Parameter bei Verwendung von AR Foundation oder Headsets ungültig.
session-Ausgabe stoppen
Während session ausgeführt wird, können Sie die Ausgabe von session über enabled steuern.
Der folgende Code kann die gesamte Ausgabe von session stoppen. Zu diesem Zeitpunkt läuft session weiterhin, aber es werden keine Inhalte mehr aktualisiert, einschließlich des von EasyAR gerenderten physischen Kamerabilds und der transforms aller von EasyAR gesteuerten Knoten.
Session.enabled = false;
Rendering des physischen Kamerabilds durch session stoppen
Sie können ARAssembly.CameraImageRenderer verwenden, um das Rendering des physischen Kamerabilds zu steuern.
Der folgende Code kann das Rendering des physischen Kamerabilds stoppen:
if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
Session.Assembly.CameraImageRenderer.Value.enabled = false;
}
Beachten Sie, dass zuerst geprüft werden muss, ob ARAssembly.CameraImageRenderer vorhanden ist.
Anmerkung
ARAssembly.CameraImageRenderer ist nur in sessions gültig, deren Bilddarstellung von EasyAR durchgeführt wird. Im Allgemeinen ist er bei Verwendung von AR Foundation oder Headsets ungültig. In diesem Fall wird das Rendering des physischen Kamerabilds von AR Foundation oder dem Headset-SDK durchgeführt.
Nächste Schritte
- Versuchen Sie, auf AR-Funktionskomponenten zuzugreifen, um weitere Steuerungsmethoden für AR-Funktionen kennenzulernen
- Erfahren Sie, wie Sie die Ausführungsergebnisse von session abrufen
- Erfahren Sie, wie Sie Verfügbarkeit und Geräteunterstützung prüfen