Table of Contents

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

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