Class MotionTrackerFrameSource
- Espacio de nombres
- easyar
- Ensayo
- EasyAR.Sense.dll
Controla el easyar.MotionTrackerCameraDevice en la escena, proporcionando extensiones de funcionalidad en el entorno de Unity.
Esta fuente-de-fotograma es un dispositivo de seguimiento de movimiento que proporciona datos de movimiento en la ARSession.
public class MotionTrackerFrameSource : FrameSource
- Herencia
-
MotionTrackerFrameSource
- Miembros heredados
Propiedades
Camera
Proporcionado solo al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de 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. Su matriz de proyección y posición corresponderán a la cámara real, controlada por EasyAR. En un HMD, esta cámara solo se usa para mostrar texto de diagnóstico frente al usuario, no para renderizar la imagen, y no está controlada por EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Alternativa a Camera, solo efectiva 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 fotogramas. Se accede durante todo el ciclo de vida de la ARSession.
Indica si ha comenzado la entrada de fotogramas de la cámara.
protected override bool CameraFrameStarted { get; }
DesiredFocusMode
Modo de enfoque deseado. Solo es efectivo si se modifica antes del evento DeviceOpened o de OnEnable.
Nota: Debido a limitaciones de hardware o sistema, el interruptor de enfoque puede no funcionar en algunos dispositivos.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
Velocidad de fotogramas deseada para el dispositivo. Solo es efectiva si se modifica antes del evento DeviceOpened o de OnEnable.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
Nivel de calidad mínimo permitido deseado. Solo es efectivo si se modifica antes de Assemble().
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
Resolución deseada. Solo es efectiva si se modifica antes del evento DeviceOpened o de OnEnable.
Si se cambia el tamaño de la imagen durante la grabación de FrameRecorder, los datos grabados dejarán de actualizarse; será necesario cerrar y volver a grabar.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
Modo de seguimiento deseado. Solo es efectivo si se modifica antes de iniciar la sesión.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }
DeviceCameras
Proporcionado solo al crear una nueva fuente de fotogramas. Se accede solo cuando CameraFrameStarted es true.
Proporciona la cámara del dispositivo que suministra los datos del fotograma de la cámara. Si los datos provienen de múltiples cámaras, la lista debe contener todas.
Asegúrate de que el valor sea correcto cuando CameraFrameStarted sea true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
DeviceQualityLevel
Obtiene la calidad del Seguimiento-de-Movimiento en el dispositivo. Combinado con el escenario de la aplicación, este valor puede usarse para decidir si iniciar el Seguimiento-de-Movimiento.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }
Display
Proporcionado solo al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de 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; }
FrameRateRange
Rango de velocidad de fotogramas. Solo disponible cuando Opened es true.
public Vector2 FrameRateRange { get; }
IsAvailable
Proporcionado solo al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de Assemble().
Indica si la fuente de fotogramas actual está disponible.
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 fotogramas. Solo se accede durante el proceso de Assemble().
Cuando es true, la sesión actualiza el transform de la cámara y renderiza la imagen de la cámara.
Al crear una extensión para HMD, debe ser false. Debes controlar completamente la cámara 3D en la escena y manejar su renderizado, especialmente en modo VST.
protected override bool IsCameraUnderControl { get; }
IsHMD
Proporcionado solo al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de Assemble().
Indica si la fuente de fotogramas actual es un visor (HMD). Si es un HMD, la información de diagnóstico se mostrará en un panel 3D delante de la cámara.
Algunos filtros de fotogramas se comportan de manera diferente cuando se ejecutan en dispositivos.
protected override bool IsHMD { get; }
LocalPointCloud
Información de posición de los datos de nube-de-puntos actuales. Solo disponible cuando Opened es true.
public List<Vector3> LocalPointCloud { get; }
Opened
Indica si la cámara está abierta.
public bool Opened { get; }
Size
Tamaño de imagen actual. Solo disponible cuando tanto Opened como MonoBehaviour.enabled son true.
public Vector2Int Size { get; }
enabled
La ARSession inicia/detiene la captura del flujo de video durante su ejecución. Tras iniciar la sesión, la captura comenzará solo cuando MonoBehaviour.enabled sea true.
public bool enabled { get; set; }
Métodos
Close()
Cierra el dispositivo.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
Realiza una Prueba-de-Golpeo (Hit Test) en planos horizontales detectados en tiempo real dentro del campo de visión actual. Al hacer clic en un plano horizontal, devuelve las coordenadas de posición del punto 3D más cercano al rayo de la Prueba-de-Golpeo en ese plano. pointInView debe normalizarse a [0, 1]^2.
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
Parámetros
pointInView
HitTestAgainstPointCloud(Vector2)
Realiza una Prueba-de-Golpeo (Hit Test) en la nube-de-puntos actual, obteniendo las coordenadas de posición del punto 3D más cercano a lo largo de un rayo desde la cámara (de cerca a lejos). pointInView debe normalizarse a [0, 1]^2.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
Parámetros
pointInView
OnSessionStart(ARSession)
Proporcionado solo al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de StartSession().
Maneja el inicio de la sesión si esta fuente de fotogramas se ha ensamblado en la Assembly. Este método está diseñado para inicialización diferida; aquí puedes realizar trabajos de inicialización específicos de AR.
protected override void OnSessionStart(ARSession session)
Parámetros
session
OnSessionStop()
Proporcionado solo al crear una nueva fuente de fotogramas. Se accede durante StopSession(bool) u otros procesos de detención/daño de la sesión.
Maneja la detención de la sesión si esta fuente de fotogramas se ha ensamblado en la Assembly. Puedes usar este método para destruir recursos creados durante StartSession() y la ejecución de la sesión, y restaurar el estado interno. Se garantiza su llamada antes de destruir la sesión. Si la fuente de fotogramas se destruye antes que la sesión, 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(), ARSession abrirá automáticamente al iniciarse.
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