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