Table of Contents

Class MotionTrackerFrameSource

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

Controla oeasyar.MotionTrackerCameraDevicena cena, fornecendo extensão de funcionalidade no ambiente Unity.

Esta fonte de quadros é um dispositivo de rastreamento de movimento que emite dados de movimento noARSession.

public class MotionTrackerFrameSource : FrameSource
Herança
MotionTrackerFrameSource
Membros herdados

Propriedades

Camera

Fornecido apenas ao criar uma nova fonte de quadros. Só é acessado duranteAssemble().

Em dispositivos desktop ou móveis, esta câmera representa oCamera correspondente no mundo virtual ao dispositivo de câmera no ambiente real; sua matriz de projeção e posição corresponderão à câmera real, controlada pelo EasyAR. Em headsets, esta câmera é usada apenas para exibir texto de diagnóstico diante dos olhos, não para renderizar a cena, e não é controlada pelo EasyAR.

protected override Camera Camera { get; }

CameraCandidate

Alternativa paraCamera, válida apenas quando a Unity XR Origin não é usada. Se não definido, Camera.main será usado.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

Fornecido apenas ao criar uma nova fonte de quadros. Será acessado durante todo o ciclo de vida doARSession.

Se os quadros da câmera começaram a ser inseridos.

protected override bool CameraFrameStarted { get; }

DesiredFocusMode

Modo de foco desejado, efetivo apenas se modificado antes do eventoDeviceOpenedou OnEnable.

Nota: Devido a limitações de hardware ou sistema, a alternância do foco pode ser ineficaz em alguns dispositivos.

public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }

DesiredFrameRate

Taxa de quadros desejada para o dispositivo, efetiva apenas se modificada antes do eventoDeviceOpenedou OnEnable.

public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }

DesiredMinQualityLevel

Nível mínimo de qualidade permitido desejado, efetivo apenas se modificado antes deAssemble().

public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }

DesiredResolution

Resolução desejada, efetiva apenas se modificada antes do eventoDeviceOpenedou OnEnable.

Se o tamanho da imagem for alterado durante a gravação doFrameRecorder, os dados gravados pararão de atualizar; é necessário fechar e gravar novamente.

public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }

DesiredTrackingMode

Modo de rastreamento desejado, efetivo apenas se modificado antes da sessão iniciar.

public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }

DeviceCameras

Fornecido apenas ao criar uma nova fonte de quadros. Será acessado quandoCameraFrameStarted for true.

Fornece a câmera do dispositivo que fornece os dados do quadro. Se os dados vierem de várias câmeras, a lista deve incluir todas.

Garanta que o valor esteja correto quandoCameraFrameStarted for true.

protected override List<FrameSourceCamera> DeviceCameras { get; }

DeviceQualityLevel

Obtém a qualidade do Rastreamento de Movimento no dispositivo. Combinado com o cenário da aplicação, este valor pode ser usado para decidir se inicia o Rastreamento de Movimento.

public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }

Display

Fornecido apenas ao criar uma nova fonte de quadros. Só é acessado duranteAssemble().

Fornece informações de exibição do sistema. Você pode usarDefaultSystemDisplay ouDefaultHMDDisplay para obter as informações padrão.

protected override IDisplay Display { get; }

FrameRateRange

Intervalo de taxa de quadros. Disponível apenas quandoOpenedé true.

public Vector2 FrameRateRange { get; }

IsAvailable

Fornecido apenas ao criar uma nova fonte de quadros. Só é acessado duranteAssemble().

Se esta fonte de quadros está disponível.

Se o valor for null,CheckAvailability() será chamado, e o valor será obtido após o término daCoroutine.

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

Fornecido apenas ao criar uma nova fonte de quadros. Só é acessado duranteAssemble().

Quando true, a sessão atualizará o transform da câmera e renderizará a imagem da câmera.

Ao criar uma extensão para headset, deve ser false. Você deve controlar totalmente a câmera 3D na cena. Você deve processar a renderização da câmera, especialmente no modo VST.

protected override bool IsCameraUnderControl { get; }

IsHMD

Fornecido apenas ao criar uma nova fonte de quadros. Só é acessado duranteAssemble().

Se esta fonte de quadros é um headset. Se for, informações de diagnóstico serão exibidas em uma placa 3D diante da câmera.

Alguns filtros de quadro funcionam diferentemente no dispositivo.

protected override bool IsHMD { get; }

LocalPointCloud

Informações de posição dos dados atuais da nuvem de pontos. Disponível apenas quandoOpenedé true.

public List<Vector3> LocalPointCloud { get; }

Opened

Se a câmera está aberta.

public bool Opened { get; }

Size

Tamanho de imagem atual. Disponível apenas quandoOpenedeMonoBehaviour.enabled são ambos true.

public Vector2Int Size { get; }

enabled

Inicia/Para a captura do fluxo de vídeo durante a execução doARSession. Após a sessão iniciar, a captura só começará quandoMonoBehaviour.enabled for true.

public bool enabled { get; set; }

Métodos

Close()

Fecha o dispositivo.

public void Close()

HitTestAgainstHorizontalPlane(Vector2)

Realiza um Hit Test em planos horizontais detectados em tempo real dentro do campo de visão atual. Ao clicar em um plano horizontal, retorna a coordenada de posição do ponto 3D mais próximo do raio do Hit Test nesse plano.pointInViewprecisa ser normalizado para [0, 1]^2.

public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)

Parâmetros

pointInView

HitTestAgainstPointCloud(Vector2)

Realiza um Hit Test na nuvem de pontos atual, obtendo a coordenada de posição do ponto 3D mais próximo ao longo de um raio da câmera (de perto para longe).pointInViewprecisa ser normalizado para [0, 1]^2.

public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)

Parâmetros

pointInView

OnSessionStart(ARSession)

Fornecido apenas ao criar uma nova fonte de quadros. Só é acessado duranteStartSession().

Lida com a inicialização da sessão, se esta fonte de quadros foi montada naAssembly. Este método é projetado para inicialização tardia; você pode realizar trabalhos de inicialização específicos de AR aqui.

protected override void OnSessionStart(ARSession session)

Parâmetros

session

OnSessionStop()

Fornecido apenas ao criar uma nova fonte de quadros. Será acessado duranteStopSession(bool) ou outros processos de parada/corrupção da sessão.

Lida com a parada da sessão, se esta fonte de quadros foi montada naAssembly. Use este método para destruir recursos criados duranteStartSession() e operação da sessão, e restaurar o estado interno. É garantido que será chamado antes da destruição da sessão. Se a fonte de quadros for destruída antes da sessão, não será chamado e a sessão ficará corrompida.

protected override void OnSessionStop()

Open()

Abre o dispositivo. SeOpen()eClose()não forem chamados manualmente, oARSessionabrirá automaticamente após iniciar.

public void Open()

Eventos

DeviceClosed

Evento de fechamento do dispositivo.

public event Action DeviceClosed

DeviceOpened

Evento de abertura do dispositivo, o valor bool indica sucesso.

public event Action<bool, PermissionStatus, string> DeviceOpened