Class CameraDeviceFrameSource
- Пространство имен
- easyar
- Сборка
- EasyAR.Sense.dll
easyar.CameraDeviceи MonoBehaviour в сцене, предоставляющий расширение функциональности в Unity.
Этот источник кадров не является устройством отслеживания движения и не выводит данные о движении в ARSession.
[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
- Наследование
-
CameraDeviceFrameSource
- Derived
- Наследуемые члены
Поля
CameraOpenIndex
Индекс устройства, используемый при открытии камеры. Используется, когда CameraOpenMethod == DeviceIndex. Изменения вступают в силу только до события DeviceOpened.
[HideInInspector]
[SerializeField]
public int CameraOpenIndex
CameraOpenMethod
Метод, используемый при открытии камеры. Изменения вступают в силу только до события DeviceOpened.
[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod
CameraOpenType
Тип камеры, используемый при открытии. Используется, когда CameraOpenMethod == PreferredType или SpecificType. Изменения вступают в силу только до события DeviceOpened.
[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType
Свойства
AndroidCameraApiType
На Android может быть использован для получения используемого Camera API (camera1 или camera2). Доступно только когда Opened true.
public AndroidCameraApiType AndroidCameraApiType { get; }
AvailableCenterMode
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться только в процессеAssemble().
Все доступные центральные режимы.
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
Предоставляется только при создании нового источника кадров. Доступно только во время процесса Assemble().
На настольных устройствах или телефонах эта камера представляет Camera в виртуальном мире, соответствующее физическому устройству камеры в реальной среде; ее матрица проекции и положение будут соответствовать реальной камере и контролироваться EasyAR. На гарнитурах эта камера используется только для отображения диагностического текста перед глазами, не для рендеринга изображения, и камера не контролируется EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Альтернатива для Camera, если не установлено, будет использован Camera.main.
public Camera CameraCandidate { get; set; }
CameraCount
Получает количество камер, распознаваемых операционной системой.
public static int CameraCount { get; }
CameraFrameStarted
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться в течение всего жизненного циклаARSession.
Начинается ли ввод кадров камеры.
protected override bool CameraFrameStarted { get; }
CameraType
Тип камеры. Доступно только когда Opened true.
public CameraDeviceType CameraType { get; }
DesiredAndroidCameraApiType
Желаемый Android Camera Api, изменения вступят в силу только если внесены до события DeviceOpened.
Если не установлено, будет выбрано на основе DesiredCameraPreference.
public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }
DesiredCameraPreference
Настройки предпочтений, используемые при создании устройства камеры, изменения вступят в силу только до запуска сессии.
public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }
DesiredFocusMode
Желаемый режим фокусировки, изменения вступят в силу только если внесены до события DeviceOpened.
Примечание: Из-за ограничений оборудования или системы переключение фокуса может не работать на некоторых устройствах. Если не установлено, будет выбрано на основе DesiredCameraPreference.
public Optional<CameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredSize
Желаемый размер изображения камеры, изменения вступят в силу только если внесены до события DeviceOpened.
Будет использован размер, наиболее близкий по значению из SupportedSize. Если не установлено, будет использовано значение по умолчанию.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться, когдаCameraFrameStarted равно true.
Устройство камеры, предоставляющее данные кадров камеры. Если данные кадров камеры предоставляются несколькими камерами, список должен включать все камеры.
Убедитесь, что значение правильно, когдаCameraFrameStarted равно true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться только в процессеAssemble().
Предоставляет информацию о системе отображения. Вы можете использоватьDefaultSystemDisplay илиDefaultHMDDisplay для получения информации о дисплее по умолчанию.
protected override IDisplay Display { get; }
FocusMode
Режим фокусировки. Доступно только когда Opened равно true.
public CameraDeviceFocusMode FocusMode { set; }
FrameRateRange
Диапазон частоты кадров. Доступно только когда Opened равно true.
public Vector2 FrameRateRange { get; }
FrameRateRangeIndex
Индекс текущего диапазона частоты кадров устройства. Доступно только когда Opened равно true.
public int FrameRateRangeIndex { get; set; }
Index
Индекс камеры. Доступно только когда Opened true.
public int Index { get; }
IsAvailable
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться только в процессеAssemble().
Доступен ли текущий источник кадров.
Если значение равно null,CheckAvailability() будет вызван, и значение будет получено после завершенияCoroutine.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться только в процессеAssemble().
Когда значение равно true, сессия обновляет transform камеры и отображает изображение камеры.
При создании расширения для гарнитуры оно должно быть false. Вы должны полностью контролировать 3D-камеру в сцене. Вы должны обрабатывать рендеринг камеры, особенно в режиме VST.
protected override bool IsCameraUnderControl { get; }
IsHMD
Предоставляется только при создании нового источника кадров. Доступно только во время процесса Assemble().
Является ли текущий источник кадров гарнитурой (HMD). Если это гарнитура, диагностическая информация будет отображаться на 3D-панели перед камерой.
Некоторые фильтры кадров могут работать по-разному на устройстве.
protected override bool IsHMD { get; }
Opened
Открыта ли камера.
public bool Opened { get; }
Parameters
Параметры camera. Доступно только когда Opened равно true.
public CameraParameters Parameters { get; set; }
Size
Текущий размер изображения. Доступно только когда Opened равно true.
При установке будет использован размер, наиболее близкий по значению из SupportedSize.
Если размер изображения изменен во время записи FrameRecorder, запись данных прекратит обновляться; необходимо закрыть и начать запись заново.
public Vector2Int Size { get; set; }
SupportedFrameRateRange
Все поддерживаемые диапазоны частоты кадров для текущего устройства. Доступно только когда Opened равно true.
public List<Vector2> SupportedFrameRateRange { get; }
SupportedSize
Все разрешения изображений, поддерживаемые текущим устройством. Доступно только когда Opened true.
public List<Vector2Int> SupportedSize { get; }
enabled
Во время выполнения начинается/останавливается сбор данных видеопотока. Сбор начнется только после запуска сессии, когдаMonoBehaviour.enabled равно true.
public bool enabled { get; set; }
Методы
AutoFocus()
Does auto focus once. It is only available when FocusMode is Normal or Macro.
public bool AutoFocus()
Close()
Закрыть устройство.
public void Close()
OnSessionStart(ARSession)
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться только в процессеStartSession().
Обрабатывает запуск сессии, если этот источник кадров уже собран вAssembly. Этот метод предназначен для отложенной инициализации, вы можете выполнять уникальные для AR инициализационные работы в этом методе.
protected override void OnSessionStart(ARSession session)
Параметры
session
OnSessionStop()
Предоставляется только при создании нового источника кадров. Доступ к нему будет осуществляться вStopSession(bool) или других процессах остановки/повреждения сессии.
Обрабатывает остановку сессии, если этот источник кадров уже собран вAssembly. Вы можете использовать этот метод для уничтоженияStartSession() ресурсов, созданных во время работы сессии, и восстановления внутреннего состояния. Этот метод гарантированно будет вызван до уничтожения сессии. Если источник кадров уничтожен до сессии, он не будет вызван, и сессия будет повреждена.
protected override void OnSessionStop()
Open()
Открыть устройство. Если не вызвано вручнуюOpen() иClose(),ARSession автоматически откроется после запуска.
Можно использовать только после запуска сессии.
public void Open()
SetFlashTorch(bool)
Установить режим вспышки. Доступно только когдаOpened равно true.
public bool SetFlashTorch(bool on)
Параметры
on
События
DeviceClosed
Событие закрытия устройства.
public event Action DeviceClosed
DeviceOpened
Событие открытия устройства. Значение bool указывает на успех.
public event Action<bool, PermissionStatus, string> DeviceOpened
DeviceStateChanged
Событие недоступности устройства (отключение, захват и т.п.) (только Windows).
public event Action<CameraState> DeviceStateChanged