Controle de fluxo da sessão
Durante a execução de uma sessão, às vezes é necessário modificar os componentes da sessão, o que requer parar e reiniciar a sessão. Também pode ser necessário parar certas saídas da sessão. Este artigo explica como controlar o fluxo de execução da sessão.
Antes de começar
- Compreenda os conceitos básicos, componentes e fluxo de trabalho da sessão através de Introdução ao ARSession
- Aprenda como criar uma sessão
Montagem da sessão
Normalmente, o processo de montagem é acionado automaticamente ao iniciar a sessão.
O código abaixo executa implicitamente o processo de montagem:
Session.StartSession();
Em alguns casos, como ao verificar antecipadamente disponibilidade e suporte do dispositivo, você também pode usar Assemble() para acionar manualmente a montagem da sessão:
StartCoroutine(Session.Assemble());
Nota
Assemble() retorna uma corrotina, que deve ser iniciada via StartCoroutine(IEnumerator).
Iniciar a sessão
AutoStart controla se a sessão inicia automaticamente. Se AutoStart for true (valor padrão), a sessão iniciará automaticamente durante MonoBehaviour.Start().
A sessão também pode ser iniciada manualmente, o que requer definir AutoStart como false antecipadamente. Em seguida, use StartSession() para iniciar a sessão:
Session.StartSession();
Parar a sessão
Use StopSession(bool) para parar a sessão:
Session.StopSession(keepLastFrame);
O parâmetro keepLastFrame controla se a imagem da câmera física do último frame é mantida após parar a sessão. Isso é útil ao alternar entre diferentes sessões, evitando cintilação na imagem.
Nota
keepLastFrame só afeta sessões onde o desenho é feito pelo EasyAR. Geralmente, esse parâmetro é ineficaz ao usar AR Foundation ou head-mounted displays.
Parar a saída da sessão
Durante a execução, a saída da sessão pode ser controlada via enabled.
O código abaixo para todas as saídas da sessão. A sessão continua em execução, mas não atualiza nenhum conteúdo (incluindo imagens da câmera física desenhadas pelo EasyAR e transformações de todos os nós controlados pelo EasyAR):
Session.enabled = false;
Parar o desenho da imagem da câmera física
Use ARAssembly.CameraImageRenderer para controlar o desenho da imagem da câmera física.
O código abaixo 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 se ARAssembly.CameraImageRenderer existe antes.
Nota
ARAssembly.CameraImageRenderer só é válido em sessões onde o desenho é feito pelo EasyAR. Geralmente, é ineficaz ao usar AR Foundation ou head-mounted displays, onde o desenho é tratado pelo SDK respectivo.
Próximos passos
- Experimente acessar componentes de recursos AR para mais métodos de controle
- Aprenda como obter resultados da execução da sessão
- Entenda como verificar disponibilidade e suporte do dispositivo