Class MotionTrackerFrameSource
- Espacio de nombres
- easyar
- Ensayo
- EasyAR.Sense.dll
Controla el easyar.MotionTrackerCameraDevice en la escena, proporcionando extensiones de funcionalidad en el entorno Unity.
Esta fuente de fotogramas 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
Solo se proporciona 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 en el mundo virtual correspondiente al dispositivo de cámara física en el entorno real. Su matriz de proyección y posición corresponderán a la cámara real y están controladas por EasyAR. En un HMD, esta cámara solo se usa para mostrar texto de diagnóstico frente a los ojos, no para renderizar la imagen, y la cámara 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 está establecido, se usará Camera.main.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Solo se proporciona al crear una nueva fuente de fotogramas. Se accede durante todo el ciclo de vida de la ARSession.
¿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 del dispositivo deseada. 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 modifica el tamaño de la imagen durante la grabación de FrameRecorder, los datos de grabación 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
Solo se proporciona al crear una nueva fuente de fotogramas. Se accede cuando CameraFrameStarted es true.
Proporciona la(s) cámara(s) del dispositivo que proporciona(n) los datos del fotograma de la cámara. Si los datos del fotograma provienen de múltiples cámaras, la lista debe contenerlas todas.
Asegúrese 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. Combinando con el escenario de la aplicación, se puede usar este valor para decidir si iniciar el Seguimiento de Movimiento.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }
Display
Solo se proporciona 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
Solo se proporciona al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de Assemble().
¿Está disponible esta fuente de fotogramas?
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
Solo se proporciona al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de 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 HMD, 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 (Video See-Through).
protected override bool IsCameraUnderControl { get; }
IsHMD
Solo se proporciona al crear una nueva fuente de fotogramas. Solo se accede durante el proceso de Assemble().
¿Es esta fuente de fotogramas un dispositivo de visualización montado en la cabeza (HMD)? Si es un HMD, la información de diagnóstico se mostrará en un panel 3D frente a la cámara.
Algunos filtros de fotogramas funcionan de manera diferente en dispositivos HMD.
protected override bool IsHMD { get; }
LocalPointCloud
Información de posición de datos de nube de puntos actual. Solo disponible cuando Opened es true.
public List<Vector3> LocalPointCloud { get; }
Opened
¿Está abierta la cámara?
public bool Opened { get; }
Size
Tamaño de imagen actual. Solo disponible cuando tanto Opened como MonoBehaviour.enabled son true.
public Vector2Int Size { get; }
Métodos
Close()
Cierra el dispositivo.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
Realiza una prueba de impacto (Hit Test) en los planos horizontales detectados en tiempo real dentro del campo de visión actual. Al hacer clic en un plano horizontal, devuelve la coordenada de posición 3D del punto más cercano al rayo de Hit Test 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 impacto (Hit Test) en la nube de puntos actual, obteniendo la coordenada de posición 3D del punto más cercano en un rayo que va 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)
Solo se proporciona 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 Assembly. Este método está diseñado para inicialización diferida; aquí puede realizar trabajos de inicialización específicos de AR.
protected override void OnSessionStart(ARSession session)
Parámetros
session
OnSessionStop()
Solo se proporciona al crear una nueva fuente de fotogramas. 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 fotogramas se ha ensamblado en Assembly. Puede usar este método para destruir recursos creados durante StartSession() y el funcionamiento de la sesión, y restaurar el estado interno. Se garantiza que este método se llamará antes de que se destruya la sesión. Si la fuente de fotogramas 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 después de que se inicie la 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