Class ARKitFrameSource
- Espacio de nombres
- easyar
- Ensayo
- EasyAR.Sense.dll
Un MonoBehaviour que controla el dispositivo de cámara ARKit (easyar.ARKitCameraDevice) en la escena, proporcionando extensiones de funcionalidad en entornos Unity.
Esta fuente de frame es un dispositivo de seguimiento de movimiento que emite datos de movimiento en una ARSession.
public class ARKitFrameSource : FrameSource
- Herencia
-
ARKitFrameSource
- Miembros heredados
Campos
DesiredFocusMode
El modo de enfoque deseado. Efectivo solo si se modifica antes del evento DeviceOpened o OnEnable.
Nota: Debido a limitaciones de hardware o sistema, el interruptor de enfoque puede no funcionar en algunos dispositivos.
public ARKitCameraDeviceFocusMode DesiredFocusMode
Propiedades
Camera
Proporcionado solo al crear una nueva fuente de frame. Solo se accede durante Assemble().
En dispositivos de escritorio o móviles, esta cámara representa el Camera correspondiente en el mundo virtual al dispositivo de cámara real en el entorno físico. Su matriz de proyección y posición corresponderán a la cámara real, controlada por EasyAR. En visores, esta cámara solo se usa para mostrar texto de diagnóstico frente a los ojos, no para renderizar la escena, y no está controlada por EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Alternativa a Camera, válida solo si no se usa Unity XR Origin. Si no se establece, se usará Camera.main.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Proporcionado solo al crear una nueva fuente de frame. Se accede a lo largo del ciclo de vida de ARSession.
¿Ha comenzado la entrada de frames de cámara?
protected override bool CameraFrameStarted { get; }
DesiredFrameRate
Tasa de frame de imagen de cámara deseada. Efectivo solo si se modifica antes del evento DeviceOpened.
Utilizará el valor más cercano en SupportedFrameRate. Si no se establece, se usará el valor predeterminado.
public Optional<double> DesiredFrameRate { get; set; }
DesiredSize
Tamaño de imagen de cámara deseado. Efectivo solo si se modifica antes del evento DeviceOpened.
Utilizará el tamaño más cercano en SupportedSize. Si no se establece, se usará el valor predeterminado.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Proporcionado solo al crear una nueva fuente de frame. Se accede cuando CameraFrameStarted es true.
Proporciona la(s) cámara(s) del dispositivo que entrega(n) los datos de los frames. Si los frames provienen de múltiples cámaras, la lista debe contener todas.
Asegúrese de que el valor sea correcto cuando CameraFrameStarted es true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Proporcionado solo al crear una nueva fuente de frame. Solo se accede durante Assemble().
Proporciona información del sistema de visualización. Puedes usar DefaultSystemDisplay o DefaultHMDDisplay para obtener la información de visualización predeterminada.
protected override IDisplay Display { get; }
FrameRate
Tasa de frame actual del dispositivo. Solo disponible cuando Opened es true.
set utilizará el valor más cercano en SupportedFrameRate.
public double FrameRate { get; set; }
IsAvailable
Proporcionado solo al crear una nueva fuente de frame. Solo se accede durante Assemble().
¿Está disponible esta fuente de frame?
Si el valor es null, se llamará a CheckAvailability() y el valor se obtendrá después de que finalice la Coroutine.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Proporcionado solo al crear una nueva fuente de frame. Solo se accede durante Assemble().
Cuando es true, la sesión actualizará el transform de la cámara y renderizará la imagen de la cámara.
Al crear una extensión para visor, debe ser false. Debes tener control total sobre la cámara 3D en la escena. Debes manejar el renderizado de la cámara, especialmente en modo VST.
protected override bool IsCameraUnderControl { get; }
IsHMD
Proporcionado solo al crear una nueva fuente de frame. Solo se accede durante Assemble().
¿Es esta fuente de frame un visor? Si es un visor, la información de diagnóstico se mostrará en un panel 3D frente a la cámara.
Algunos filtros de frame funcionan de manera diferente en los dispositivos.
protected override bool IsHMD { get; }
Opened
¿Está abierta la cámara?
public bool Opened { get; }
Size
Tamaño de imagen actual. Solo disponible cuando Opened es true.
set utilizará el tamaño más cercano en SupportedSize.
Si se modifica el tamaño de imagen durante la grabación de FrameRecorder, los datos de grabación dejarán de actualizarse y será necesario cerrar y volver a grabar.
public Vector2Int Size { get; set; }
SupportedFrameRate
Todas las tasas de frame soportadas por el dispositivo actual. Solo disponible cuando Opened es true.
public List<double> SupportedFrameRate { get; }
SupportedSize
Todos los tamaños de imagen soportados por el dispositivo actual. Solo disponible cuando Opened es true.
public List<Vector2Int> SupportedSize { get; }
Métodos
Close()
Cierra el dispositivo.
public void Close()
OnSessionStart(ARSession)
Proporcionado solo al crear una nueva fuente de frame. Solo se accede durante StartSession().
Maneja el inicio de la sesión si esta fuente de frame se ha ensamblado en Assembly. Este método está diseñado para inicialización diferida; aquí puede realizar tareas de inicialización específicas de AR.
protected override void OnSessionStart(ARSession session)
Parámetros
session
OnSessionStop()
Proporcionado solo al crear una nueva fuente de frame. Se accede durante StopSession(bool) u otros procesos de detención/daño de sesión.
Maneja la detención de la sesión si esta fuente de frame se ha ensamblado en Assembly. Use este método para destruir recursos creados en StartSession() y durante la ejecución, y restaurar el estado interno. Se garantiza su llamada antes de que se destruya la sesión. Si la fuente de frame se destruye antes que la sesión, este método no se llamará y la sesión se dañará.
protected override void OnSessionStop()
Open()
Abre el dispositivo. Si no se llama manualmente a Open() y Close(), se abrirá automáticamente cuando se inicie ARSession.
public void Open()
Eventos
DeviceClosed
Evento de cierre del dispositivo.
public event Action DeviceClosed
DeviceOpened
Evento de apertura del dispositivo, el valor bool indica si fue exitoso.
public event Action<bool, PermissionStatus, string> DeviceOpened