Table of Contents

Class ARSession

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

Controla a sessão AR na cenaMonoBehaviour.Uma sessão contém um conjunto de componentes montados em umARAssembly e controla o fluxo de dados em todo o ciclo de vida.Este componente é o ponto de entrada para AR.Não é permitido ter 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 é denominadoCenterObject,ele permanece imóvel na cena,enquanto outros objetos se movem em relação a esteCenterObject.Este objeto é selecionado com base no valor deCenterMode.Consulte a descrição deARSession.ARCenterMode para obter mais detalhes.

[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 a sessão automaticamente emMonoBehaviour.Start.Se definido como false,você precisa chamar manualmenteStartSession() para iniciar a sessão.

[SerializeField]
[HideInInspector]
public bool AutoStart

CenterMode

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

[SerializeField]
[HideInInspector]
public ARSession.ARCenterMode CenterMode

HorizontalFlip

Modo de renderização espelhado horizontalmente.Pode ser modificado a qualquer momento,com efeito imediato.Disponível apenas quando rastreamento de imagem ou objeto é usado.

[SerializeField]
[HideInInspector]
public ARSession.FlipOptions HorizontalFlip

Propriedades

AssembleOptions

Opções de montagem da sessão,devem 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 de centro disponíveis para a sessão atual.

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

CenterObject

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

Este objeto representa um objeto ou seu pai que não se move no espaço Unity.Pode serOrigin,Camera ou um `target`. `Target` pode ser um objeto contendoTargetController ouBlockRootController.Ao usar mapas espaciais esparsos ou EasyAR Mega,o centro realGameObject é o objeto de mapa ou bloco localizado especificamente sob o nó raiz,CenterObject é o pai deste objeto.Consulte a descrição deARSession.ARCenterMode para obter mais detalhes.

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 estiver em execução.

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

public GameObject Origin { get; }

Report

Relatório da sessão.Torna-se disponível para visualização após a montagem ser concluída e é atualizado quando o estado da sessão muda.Usado para visualizar detalhes como corrupção da sessão ou disponibilidade de componentes.

public SessionReport Report { get; }

SpecificTargetCenter

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

O 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 estiver em execução.

public Optional<MotionTrackingStatus> TrackingStatus { get; }

enabled

Ativa/desativa a saída durante a execução da sessão.No estado desativado,a sessão não produz saída,a imagem da câmera (se controlada pelo EasyAR) e os transform de todos os objetos da sessão não são atualizados.

public bool enabled { get; set; }

Métodos

Assemble()

Monta a sessão usandoAssembleOptions.Se chamado,será chamado 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.Não disponível em dispositivos head-mounted.

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)

Interrompe a sessão iniciada.Todas as atualizações de transform e renderização de imagem pararão.Você pode optar por manter a última imagem no quadro ao parar,mas só funciona quando o EasyAR controla a renderização da imagem(ineficaz para AR Foundation e dispositivos head-mounted,etc.).

public void StopSession(bool keepLastFrame)

Parâmetros

keepLastFrame

Eventos

AssembleUpdate

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

public event Action<SessionReport.AvailabilityReport> AssembleUpdate

InputFrameUpdate

Evento de atualização do quadro de entrada,acionado apenas quando oInputFrame exibido pela sessão muda.Dispositivos head-mounted não recebem este evento,e se existir uma imagem de transparência,sua renderização é feita pelo dispositivo.

public event Action<InputFrame> InputFrameUpdate

PostSessionUpdate

Evento de conclusão da atualização da sessão,com frequência igual à deMonoBehaviour.Update(em dispositivos head-mounted,requer que o autor da extensão implemente corretamente).Quando este evento é acionado,todas as mudanças de transform controladas pelo EasyAR dentro desse quadro foram concluídas.

public event Action PostSessionUpdate

StateChanged

Evento de alteração doStateda sessão.

public event Action<ARSession.SessionState> StateChanged