Table of Contents

Class ARKitFrameSource

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

Um MonoBehaviour que controla o dispositivo de câmera ARKit (easyar.ARKitCameraDevice) na cena, fornecendo extensões funcionais no ambiente Unity.

Esta fonte de frames é um dispositivo de rastreamento de movimento que produz dados de movimento na ARSession.

public class ARKitFrameSource : FrameSource
Herança
ARKitFrameSource
Membros herdados

Campos

DesiredFocusMode

O modo de foco desejado. As alterações só são efetivas se feitas antes do evento DeviceOpened ou de OnEnable.

Nota: Devido a limitações de hardware ou sistema, a alternância de foco pode não funcionar em alguns dispositivos.

public ARKitCameraDeviceFocusMode DesiredFocusMode

Propriedades

Camera

Fornecido apenas ao criar uma nova fonte de frames. Será acessado apenas durante o processo de Assemble().

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

protected override Camera Camera { get; }

CameraCandidate

Alternativa ao Camera, válida apenas se o Unity XR Origin não estiver em uso. Se não definida, Camera.main será usada.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

Fornecido apenas ao criar uma nova fonte de frames. Será acessado durante todo o ciclo de vida do ARSession.

Se os frames da câmera começaram a ser fornecidos.

protected override bool CameraFrameStarted { get; }

DesiredFrameRate

Taxa de quadros de imagem da câmera desejada. As alterações só são efetivas se feitas antes do evento DeviceOpened.

Usará o valor mais próximo em SupportedFrameRate. Se não definido, o padrão será usado.

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

DesiredSize

Tamanho de imagem da câmera desejado. As alterações só são efetivas se feitas antes do evento DeviceOpened.

Usará o tamanho mais próximo dos valores em SupportedSize. Se não definido, o padrão será usado.

public Optional<Vector2Int> DesiredSize { get; set; }

DeviceCameras

Fornecido apenas ao criar uma nova fonte de frames. Será acessado quando CameraFrameStarted for true.

O dispositivo de câmera que fornece os dados do frame da câmera. Se os dados vierem de múltiplas câmeras, a lista deve incluir todas.

Garanta que o valor esteja correto quando CameraFrameStarted for true.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

Fornecido apenas ao criar uma nova fonte de frames. Será acessado apenas durante o processo de Assemble().

Fornece informações do sistema de exibição. Você pode usar DefaultSystemDisplay ou DefaultHMDDisplay para obter as informações de exibição padrão.

protected override IDisplay Display { get; }

FrameRate

Taxa de quadros atual do dispositivo. Disponível apenas quando Opened é true.

A definição usará o valor mais próximo em SupportedFrameRate.

public double FrameRate { get; set; }

IsAvailable

Fornecido apenas ao criar uma nova fonte de frames. Será acessado apenas durante o processo de Assemble().

Se esta fonte de frames está disponível.

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

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

Fornecido apenas ao criar uma nova fonte de frames. Será acessado apenas durante o processo de Assemble().

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 ter controle total sobre a câmera 3D na cena. Você deve lidar com a renderização da câmera, especialmente no modo VST.

protected override bool IsCameraUnderControl { get; }

IsHMD

Fornecido apenas ao criar uma nova fonte de frames. Será acessado apenas durante o processo de Assemble().

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

Alguns filtros de frame funcionam de forma diferente em dispositivos.

protected override bool IsHMD { get; }

Opened

Se a câmera está aberta.

public bool Opened { get; }

Size

Tamanho atual da imagem. Disponível apenas quando Opened é true.

A definição usará o tamanho mais próximo dos valores em SupportedSize.

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

public Vector2Int Size { get; set; }

SupportedFrameRate

Todas as taxas de quadros suportadas pelo dispositivo atual. Disponível apenas quando Opened é true.

public List<double> SupportedFrameRate { get; }

SupportedSize

Todos os tamanhos de imagem suportados pelo dispositivo atual. Disponível apenas quando Opened é true.

public List<Vector2Int> SupportedSize { get; }

Métodos

Close()

Fecha o dispositivo.

public void Close()

OnSessionStart(ARSession)

Fornecido apenas ao criar uma nova fonte de frames. Será acessado apenas durante o processo de StartSession().

Lida com a inicialização da sessão, se esta fonte de frames foi montada na Assembly. Este método destina-se à 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 frames. Será acessado durante StopSession(bool) ou outros processos de parada/corrupção de sessão.

Lida com a parada da sessão, se esta fonte de frames foi montada na Assembly. Você pode usar este método para destruir recursos criados durante StartSession() e operação da sessão, e restaurar o estado interno. É garantido que este método será chamado antes da sessão ser destruída. Se a fonte de frames for destruída antes da sessão, este método não será chamado e a sessão ficará corrompida.

protected override void OnSessionStop()

Open()

Abre o dispositivo. Se Open() e Close() não forem chamados manualmente, o ARSession abrirá automaticamente ao 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