Controlo de fluxo da session
Durante a execução da session, por vezes é necessário modificar os componentes da session, o que requer parar e reiniciar a session. Também pode ser necessário parar certas saídas da session. Este artigo explica como controlar o fluxo de execução da session.
Antes de começar
- Entenda os conceitos básicos, composição e fluxo de trabalho da session através de Introdução à ARSession
- Saiba como criar uma session
Montagem da session
Normalmente, o processo de montagem é acionado automaticamente ao iniciar a session.
O seguinte código executa implicitamente o processo de montagem:
Session.StartSession();
Por vezes, por exemplo para verificar disponibilidade e suporte de dispositivos antecipadamente, também pode usar Assemble() para acionar manualmente o processo de montagem da session:
StartCoroutine(Session.Assemble());
Nota
Assemble() retorna uma corrotina, que precisa ser iniciada através de StartCoroutine(IEnumerator).
Iniciar a session
AutoStart controla se a session inicia automaticamente. Se AutoStart for true (valor padrão), a session inicia automaticamente durante MonoBehaviour.Start().
A session também pode ser iniciada manualmente, o que requer alterar AutoStart para false antecipadamente. Depois pode usar StartSession() para iniciar a session.
Session.StartSession();
Parar a session
Pode usar StopSession(bool) para parar a session.
Session.StopSession(keepLastFrame);
O parâmetro keepLastFrame controla se a session mantém a imagem da câmera física do último frame após parar. Isto é útil ao alternar entre diferentes sessions, evitando cintilação da imagem.
Nota
keepLastFrame só afeta sessions onde o desenho é feito pelo EasyAR. Geralmente, ao usar AR Foundation ou headsets, este parâmetro é ineficaz.
Parar a saída da session
Durante a execução da session, pode controlar a sua saída através de enabled.
O seguinte código para todas as saídas da session. A session permanece em execução, mas não atualiza nenhum conteúdo (incluindo imagem da câmera física desenhada pelo EasyAR e transform de todos os nós controlados pelo EasyAR).
Session.enabled = false;
Parar o desenho da imagem da câmera física pela session
Pode usar ARAssembly.CameraImageRenderer para controlar o desenho da imagem da câmera física.
O seguinte código para o desenho da imagem da câmera física:
if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
Session.Assembly.CameraImageRenderer.Value.enabled = false;
}
É necessário verificar primeiro se ARAssembly.CameraImageRenderer existe.
Nota
ARAssembly.CameraImageRenderer só é válido em sessions onde o desenho é feito pelo EasyAR. Geralmente, ao usar AR Foundation ou headsets, é ineficaz, pois o desenho é realizado pelo AR Foundation ou SDK do headset.
Próximos passos
- Experimente aceder aos componentes de funcionalidades AR para mais métodos de controlo de funcionalidades AR
- Saiba como obter resultados da execução da session
- Entenda como verificar disponibilidade e suporte de dispositivos