Table of Contents

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

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