Table of Contents

Controllo del flusso di session

Durante l'esecuzione di session, a volte è necessario modificare i componenti di session. In questo caso è necessario arrestare e riavviare session. A volte può anche essere necessario arrestare alcuni output di session. Questo articolo descrive come controllare il flusso di esecuzione di session.

Prima di iniziare

Assemblaggio di session

Il processo di assemblaggio viene in genere attivato automaticamente all'avvio di session.

Il codice seguente esegue implicitamente il processo di assemblaggio.

Session.StartSession();

In alcuni casi, ad esempio quando è necessario verificare in anticipo disponibilità e supporto del dispositivo, puoi anche usare Assemble() per attivare manualmente il processo di assemblaggio di session:

StartCoroutine(Session.Assemble());
Nota

Assemble() restituisce una coroutine e deve essere avviato tramite StartCoroutine(IEnumerator).

Avviare session

AutoStart controlla se session viene avviata automaticamente. Se AutoStart è true (valore predefinito), session viene avviata automaticamente in MonoBehaviour.Start().

Session può anche essere avviata manualmente. Questo richiede di modificare prima AutoStart in false. Poi puoi usare StartSession() per avviare session.

Session.StartSession();

Arrestare session

Puoi usare StopSession(bool) per arrestare session.

Session.StopSession(keepLastFrame);

Il parametro keepLastFrame controlla se mantenere l'ultima immagine della fotocamera fisica dopo l'arresto di session. È utile quando è necessario passare tra session diverse e può evitare lo sfarfallio dello schermo.

Nota

keepLastFrame può controllare solo le sessions il cui rendering dell'immagine viene eseguito da EasyAR. In generale, questo parametro non è valido quando si usa AR Foundation o un visore.

Arrestare l'output di session

Quando session è in esecuzione, puoi controllare l'output di session tramite enabled.

Il codice seguente può arrestare tutto l'output di session. A questo punto session è ancora in esecuzione, ma nessun contenuto verrà aggiornato, inclusa l'immagine della fotocamera fisica renderizzata da EasyAR e i transform di tutti i nodi controllati da EasyAR.

Session.enabled = false;

Arrestare il rendering dell'immagine della fotocamera fisica da parte di session

Puoi usare ARAssembly.CameraImageRenderer per controllare il rendering dell'immagine della fotocamera fisica.

Il codice seguente può arrestare il rendering dell'immagine della fotocamera fisica:

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

Nota che devi prima verificare se ARAssembly.CameraImageRenderer esiste.

Nota

ARAssembly.CameraImageRenderer è valido solo nelle sessions il cui rendering dell'immagine viene eseguito da EasyAR. In generale, non è valido quando si usa AR Foundation o un visore. In questo caso, il rendering dell'immagine della fotocamera fisica viene completato da AR Foundation o dall'SDK del visore.

Passaggi successivi