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
- Comprendere i concetti di base, la composizione e il flusso di lavoro della session attraverso Introduzione ad ARSession
- Scoprire come creare una session
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
- Provare ad accedere ai componenti funzionali AR per scoprire altri metodi di controllo delle funzionalità AR
- Scoprire come ottenere i risultati dell'esecuzione della session
- Comprendere come valutare disponibilità e supporto del dispositivo