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