Table of Contents

Controllo del flusso 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 articolo 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.

Il seguente codice esegue implicitamente il processo di assemblaggio.

Session.StartSession();

A volte, ad esempio quando è necessario valutare disponibilità e supporto del dispositivo in anticipo, è possibile 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 avvierà automaticamente durante MonoBehaviour.Start().

La session può anche essere avviata manualmente, il che richiede di impostare AutoStart su false in anticipo. Quindi è possibile utilizzare StartSession() per avviare la session.

Session.StartSession();

Arresto della session

È possibile utilizzare StopSession(bool) per arrestare la session.

Session.StopSession(keepLastFrame);

Il parametro keepLastFrame controlla se mantenere l'ultimo frame dell'immagine della fotocamera fisica dopo l'arresto della session. Ciò è utile quando si passa da una session a un'altra, evitando sfarfallii dello schermo.

Nota

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

Interrompere l'output della session

Durante l'esecuzione della session, è possibile 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 dell'immagine della fotocamera fisica da parte di EasyAR e tutte le trasformazioni dei nodi controllati da EasyAR).

Session.enabled = false;

Interrompere il rendering dell'immagine della fotocamera fisica da parte della session

È possibile 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 è efficace solo nelle session in cui il rendering è gestito da EasyAR. Generalmente, è inefficace quando si utilizza AR Foundation o visori, poiché il rendering dell'immagine della fotocamera fisica è gestito da AR Foundation o dall'SDK del visore.

Passaggi successivi