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
- Comprendi i concetti di base, la composizione e il workflow di session tramite Panoramica di ARSession
- Scopri come creare session
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
- Prova ad accedere ai componenti delle funzionalità AR per conoscere altri metodi di controllo delle funzionalità AR
- Scopri come ottenere i risultati di esecuzione di session
- Scopri come verificare disponibilità e supporto del dispositivo