Table of Contents

Flusso di controllo della session

Durante l'esecuzione della session, a volte è necessario modificare i componenti della session, il che richiede di arrestare e riavviare la session. A volte potrebbe anche essere necessario interrompere alcuni output della session. Questo documento spiega come controllare il flusso di esecuzione della session.

Prima di iniziare

Assemblaggio della session

Di solito, l'assemblaggio viene attivato automaticamente all'avvio della session.

Questo codice esegue implicitamente il processo di assemblaggio.

Session.StartSession();

A volte, ad esempio per valutare disponibilità e supporto del dispositivo in anticipo, puoi anche utilizzare Assemble() per attivare manualmente l'assemblaggio della session:

StartCoroutine(Session.Assemble());
Nota

Assemble() restituisce una coroutine, che deve essere avviata tramite StartCoroutine(IEnumerator).

Avvio della session

AutoStart controlla se la session si avvia automaticamente. Se AutoStart è true (valore predefinito), la session si avvia automaticamente durante MonoBehaviour.Start().

La session può essere avviata manualmente, ma è necessario impostare AutoStart su false in anticipo. Quindi puoi utilizzare StartSession() per avviare la session.

Session.StartSession();

Arresto della session

Puoi utilizzare StopSession(bool) per arrestare la session.

Session.StopSession(keepLastFrame);

Il parametro keepLastFrame controlla se mantenere l'ultima immagine della fotocamera fisica dopo l'arresto della session. Ciò è utile quando si passa tra diverse session per evitare sfarfallii dello schermo.

Nota

keepLastFrame funziona solo con session in cui il rendering è gestito da EasyAR. Generalmente, questo parametro è inefficace quando si utilizza AR Foundation o visori.

Interruzione dell'output della session

Durante l'esecuzione della session, puoi controllarne l'output tramite enabled.

Questo codice interrompe tutti gli output della session. La session rimane in esecuzione, ma non aggiorna alcun contenuto (inclusi il rendering della fotocamera fisica da parte di EasyAR e le trasformazioni di tutti i nodi controllati da EasyAR).

Session.enabled = false;

Interruzione del rendering dell'immagine della fotocamera fisica

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

Questo codice interrompe il rendering dell'immagine della fotocamera fisica:

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

Nota: è necessario verificare prima se ARAssembly.CameraImageRenderer esiste.

Nota

ARAssembly.CameraImageRenderer funziona solo con session in cui il rendering è gestito da EasyAR. Generalmente, è inefficace quando si utilizza AR Foundation o visori, poiché il rendering è gestito dai loro SDK.

Passaggi successivi