Table of Contents

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), сеанс будет обновлять трансформацию камеры и выполнять рендеринг изображения с камеры.

При создании расширения гарнитуры это значение должно быть 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; }

Методы

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 автоматически выполнит Open() после запуска.

Используется только после запуска сеанса.

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