Table of Contents

Class ARSession

Espaço de nomes
easyar
Assembly
EasyAR.Sense.dll

Controla sessões AR na cena usandoMonoBehaviour.Uma sessão contém componentes montados em umARAssembly e controla o fluxo de dados durante todo o ciclo de vida.Este componente é a entrada para AR.Não são permitidas múltiplas instâncias ativas ao mesmo tempo.

Todas as funcionalidades dos componentes EasyAR só podem ser usadas apósStartSession().

A transform relativa entreCamera e alguns componentes AR é controlada pela sessão.Um objeto é chamadoCenterObject,ele permanece imóvel na cena,enquanto outros objetos se movem em relação a esteCenterObject.Este objeto é selecionado com base no valorCenterMode.Detalhes adicionais podem ser encontrados na descriçãoARSession.ARCenterMode.

[DefaultExecutionOrder(-2147483648)]
[DisallowMultipleComponent]
[RequireComponent(typeof(EasyARController), typeof(DiagnosticsController))]
[RequireComponent(typeof(FrameRecorder), typeof(FramePlayer), typeof(CameraImageRenderer))]
public class ARSession : MonoBehaviour
Herança
ARSession

Campos

AutoStart

Inicia automaticamente a sessão emMonoBehaviour.Start.Se definido como false,você precisa chamar manualmenteStartSession() para iniciar a sessão.

[SerializeField]
[HideInInspector]
public bool AutoStart

CenterMode

Modo central AR.Pode ser modificado a qualquer momento,com efeito imediato.Se o modo especificado não estiver disponível,será automaticamente alterado para um modo disponível.

[SerializeField]
[HideInInspector]
public ARSession.ARCenterMode CenterMode

HorizontalFlip

Modo de renderização de espelhamento horizontal.Pode ser modificado a qualquer momento,com efeito imediato.Disponível apenas quando usando rastreamento de imagem ou objeto.

[SerializeField]
[HideInInspector]
public ARSession.FlipOptions HorizontalFlip

Propriedades

AssembleOptions

Opções de montagem da sessão,precisam ser definidas antes deAssemble() (se não chamado anteriormente,StartSession() chamará implicitamente).

public AssembleOptions AssembleOptions { get; }

Assembly

Montagem dos componentes AR.

public ARAssembly Assembly { get; }

AvailableCenterMode

Modos centrais disponíveis para a sessão atual.

public IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

CenterObject

O objeto central usado por esta sessão no frame atual.

Este objeto representa um objeto ou seu nó pai que não se move no espaço Unity.Pode serOrigin,Camera ou algum `target`. `Target` pode ser um objeto contendoTargetController ouBlockRootController.Ao usar mapas espaciais esparsos e EasyAR Mega,o centro realGameObject é o objeto de mapa ou bloco localizado sob o nó raiz;CenterObject é o nó pai deste objeto.Detalhes adicionais podem ser encontrados na descriçãoARSession.ARCenterMode.

public GameObject CenterObject { get; }

Diagnostics

Componente de diagnóstico da sessão.

public DiagnosticsController Diagnostics { get; }

Origin

Origem da sessão quando qualquer funcionalidade de rastreamento de movimento está em execução.

Será selecionada automaticamente da cena,ou criada pelo EasyAR ou por uma extensão de fonte de frame de terceiros,se não existir.Ao usar fontes de frame internas,se o XROrigin do framework Unity XR existir,ele será selecionado.Se o pacote AR Foundation não existir,somente XR Origin com estrutura padrão será selecionada.

public GameObject Origin { get; }

Report

Relatório da sessão.Disponível para visualização após a montagem concluída,e atualizado quando o estado da sessão muda.Usado para ver detalhes como corrupção da sessão ou informações de disponibilidade de componentes.

public SessionReport Report { get; }

SpecificTargetCenter

Objeto central designado manualmente.QuandoCenterMode == SpecificTarget,CenterObject será definido como este objeto.Pode ser modificado a qualquer momento,com efeito imediato.

Este objeto deve conter um componenteTargetController ouBlockRootController.

public GameObject SpecificTargetCenter { get; set; }

State

Estado atual da sessão.

public ARSession.SessionState State { get; }

TrackingStatus

Estado do rastreamento de movimento quando qualquer funcionalidade de rastreamento de movimento está em execução.

public Optional<MotionTrackingStatus> TrackingStatus { get; }

Métodos

Assemble()

Monta a sessão usandoAssembleOptions.Se chamado,será executado automaticamente emStartSession().

public IEnumerator Assemble()

ImageCoordinatesFromScreenCoordinates(Vector2)

Transforma do sistema de coordenadas da tela ([0, 1]^2) para o sistema de coordenadas da imagem ([0, 1]^2).pointInView precisa ser normalizado para [0, 1]^2.Indisponível em headsets.

public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)

Parâmetros

pointInView

StartSession()

Inicia a sessão.SeAutoStart for true,será chamado automaticamente emMonoBehaviour.Start.

public void StartSession()

StopSession(bool)

Para a sessão iniciada.Todas as atualizações de transform e renderização de imagem serão interrompidas.Você pode reter a última imagem ao parar,mas só funciona quando o EasyAR controla a renderização da imagem (inviável em AR Foundation e headsets).

public void StopSession(bool keepLastFrame)

Parâmetros

keepLastFrame

Eventos

AssembleUpdate

Evento de atualizaçãoAssemble() da sessão.Este evento será acionado 1-2 vezes durante umAssemble() (se não chamado anteriormente,StartSession() chamará implicitamente).A primeira ocorre quando a montagem é concluída.Se a atualização da lista de dispositivos estiver concluída na montagem,não haverá segunda chamada;caso contrário,a segunda chamada ocorrerá quando a atualização da lista de dispositivos for concluída.

public event Action<SessionReport.AvailabilityReport> AssembleUpdate

InputFrameUpdate

Evento de atualização de frame de entrada,acionado apenas quando oInputFrame exibido pela sessão muda.Não recebido em headsets,e se houver imagem transparente,sua renderização é feita pelo dispositivo.

public event Action<InputFrame> InputFrameUpdate

PostSessionUpdate

Evento de conclusão de atualização da sessão,com frequência igual à doMonoBehaviour.Update (requer implementação correta pelo autor da extensão em headsets).Quando este evento é acionado,todas as mudanças de transform controladas pelo EasyAR nesse frame foram concluídas.

public event Action PostSessionUpdate

StateChanged

Evento de alteração do estadoState da sessão.

public event Action<ARSession.SessionState> StateChanged