Class CameraDeviceFrameSource
- Espacio de nombres
- easyar
- Ensayo
- EasyAR.Sense.dll
Un MonoBehaviour que controla el easyar.CameraDevice en la escena, proporcionando extensiones funcionales en el entorno Unity.
Esta fuente de frames no es un dispositivo de seguimiento de movimiento y no generará datos de movimiento en ARSession.
[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
- Herencia
-
CameraDeviceFrameSource
- Derived
- Miembros heredados
Campos
CameraOpenIndex
El índice del dispositivo utilizado al abrir la cámara. Se usa cuando CameraOpenMethod == DeviceIndex. Solo es efectivo si se modifica antes del evento DeviceOpened.
[HideInInspector]
[SerializeField]
public int CameraOpenIndex
CameraOpenMethod
El método utilizado para abrir la cámara. Solo es efectivo si se modifica antes del evento DeviceOpened.
[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod
CameraOpenType
El tipo de cámara utilizado al abrirla. Se usa cuando CameraOpenMethod == PreferredType o SpecificType. Solo es efectivo si se modifica antes del evento DeviceOpened.
[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType
Propiedades
AndroidCameraApiType
En Android, se puede usar para obtener la API de cámara utilizada (camera1 o camera2). Solo disponible cuando Opened es true.
public AndroidCameraApiType AndroidCameraApiType { get; }
AvailableCenterMode
Se proporciona solo al crear una nueva fuente de fotograma. Solo se accederá durante el proceso de Assemble().
Todos los modos de centro que se pueden utilizar.
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
Proporcionado solo al crear un nuevo frame source. 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 en el entorno real. Su matriz de proyección y posición corresponderán a la cámara real, controlada por EasyAR. En dispositivos montados en la cabeza, 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, si no se establece, se usará Camera.main.
public Camera CameraCandidate { get; set; }
CameraCount
Obtiene el número de cámaras reconocidas por el sistema operativo.
public static int CameraCount { get; }
CameraFrameStarted
Se proporciona solo al crear una nueva fuente de fotograma. Se accederá a ella durante todo el ciclo de vida de ARSession.
Indica si el fotograma de la cámara ha comenzado a recibir entrada.
protected override bool CameraFrameStarted { get; }
CameraType
Tipo de cámara. Solo disponible cuando Opened es true.
public CameraDeviceType CameraType { get; }
DesiredAndroidCameraApiType
API de cámara Android deseada, efectiva solo si se modifica antes del evento DeviceOpened.
Si no se establece, se seleccionará según DesiredCameraPreference.
public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }
DesiredCameraPreference
Preferencias utilizadas al crear el dispositivo de cámara, efectivas solo si se modifican antes de iniciar la sesión.
public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }
DesiredFocusMode
Modo de enfoque deseado, efectivo solo si se modifica antes del evento DeviceOpened.
Nota: Debido a limitaciones de hardware o sistema, el interruptor de enfoque puede ser ineficaz en algunos dispositivos. Si no se establece, se seleccionará según DesiredCameraPreference.
public Optional<CameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredSize
Tamaño de imagen de cámara deseado, efectivo solo si se modifica antes del evento DeviceOpened.
Se 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
Se proporciona solo al crear una nueva fuente de fotograma. Se accederá a ella cuando CameraFrameStarted sea true.
Proporciona la cámara del dispositivo que suministra los datos del fotograma de la cámara. Si los datos del fotograma de la cámara son proporcionados por múltiples cámaras, la lista debe contener todas las cámaras.
Asegúrate de que el valor sea correcto cuando CameraFrameStarted sea true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Se proporciona solo al crear una nueva fuente de fotograma. Solo se accederá 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; }
FocusMode
Modo de enfoque. Disponible solo cuando Opened es true.
public CameraDeviceFocusMode FocusMode { set; }
FrameRateRange
Rango de velocidad de fotogramas. Disponible solo cuando Opened es true.
public Vector2 FrameRateRange { get; }
FrameRateRangeIndex
Índice del rango de velocidad de fotogramas actual del dispositivo. Disponible solo cuando Opened es true.
public int FrameRateRangeIndex { get; set; }
Index
Índice de la cámara. Solo disponible cuando Opened es true.
public int Index { get; }
IsAvailable
Se proporciona solo al crear una nueva fuente de fotograma. Solo se accederá durante el proceso de Assemble().
Indica si la fuente de fotograma actual está disponible.
Si el valor es igual a null, se llamará a CheckAvailability(), y el valor se obtendrá después de que finalice la Coroutine.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Se proporciona solo al crear una nueva fuente de fotograma. Solo se accederá durante el proceso de Assemble().
Cuando el valor es true, la sesión actualizará la transform de la cámara y renderizará la imagen de la cámara.
Al crear una extensión de auriculares, 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 un nuevo frame source. Solo se accede durante Assemble().
Si el frame source actual es un dispositivo de visualización montado en la cabeza. Si lo es, 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 dispositivos montados en la cabeza.
protected override bool IsHMD { get; }
Opened
¿Está abierta la cámara?
public bool Opened { get; }
Parameters
Parámetros de la cámara. Disponible solo cuando Opened es true.
public CameraParameters Parameters { get; set; }
Size
Tamaño de imagen actual. Disponible solo cuando Opened es true.
El 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; }
SupportedFrameRateRange
Todos los rangos de velocidad de fotogramas admitidos por el dispositivo actual. Disponible solo cuando Opened es true.
public List<Vector2> SupportedFrameRateRange { 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
AutoFocus()
Does auto focus once. It is only available when FocusMode is Normal or Macro.
public bool AutoFocus()
Close()
Cierra el dispositivo.
public void Close()
OnSessionStart(ARSession)
Se proporciona solo al crear una nueva fuente de fotograma. Solo se accederá durante el proceso de StartSession().
Maneja el inicio de la sesión, si esta fuente de fotograma ya se ha ensamblado en Assembly. Este método está diseñado para una inicialización diferida; puedes realizar trabajos de inicialización específicos de AR en este método.
protected override void OnSessionStart(ARSession session)
Parámetros
session
OnSessionStop()
Se proporciona solo al crear una nueva fuente de fotograma. Se accederá durante StopSession(bool) u otros procesos de detención/deterioro de la sesión.
Maneja la detención de la sesión, si esta fuente de fotograma ya se ha ensamblado en Assembly. Puedes usar este método para destruir los 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 fotograma se destruye antes que la sesión, no se llamará y la sesión se deteriorará.
protected override void OnSessionStop()
Open()
Abre el dispositivo. Si no se llama manualmente a Open() y Close(), se Open() automáticamente después de que se inicie ARSession.
Solo se puede usar después de iniciar la sesión.
public void Open()
SetFlashTorch(bool)
Establece el modo de linterna flash. Solo disponible cuando Opened es true.
public bool SetFlashTorch(bool on)
Parámetros
on
Eventos
DeviceClosed
Evento de dispositivo cerrado.
public event Action DeviceClosed
DeviceOpened
Evento de dispositivo abierto. El valor bool indica si fue exitoso.
public event Action<bool, PermissionStatus, string> DeviceOpened
DeviceStateChanged
Evento de dispositivo inutilizable, como desconexión o expropiación (solo Windows).
public event Action<CameraState> DeviceStateChanged