Table of Contents

Class ARKitFrameSource

Пространство имен
easyar
Сборка
EasyAR.Sense.dll

Компонент easyar.ARKitCameraDevice для управления камерой ARKit на сцене, расширяющий функциональность в среде Unity.

Этот источник кадров является устройством отслеживания движения, которое выводит данные движения в ARSession.

public class ARKitFrameSource : FrameSource
Наследование
ARKitFrameSource
Наследуемые члены

Поля

DesiredFocusMode

Желаемый режим фокусировки. Изменения вступят в силу только до события DeviceOpened или метода OnEnable.

Примечание: Из-за ограничений оборудования или системы переключение фокуса может не работать на некоторых устройствах.

public ARKitCameraDeviceFocusMode DesiredFocusMode

Свойства

Camera

Предоставляется только при создании нового источника кадров. Доступен только во время процесса Assemble().

На настольных устройствах или телефонах эта камера представляет Camera в виртуальном мире, соответствующее реальному камере устройства; ее матрица проекции и положение будут соответствовать реальной камере и контролироваться EasyAR. На гарнитуре эта камера используется только для отображения диагностического текста перед глазами, не для рендеринга изображения, и камера не контролируется EasyAR.

protected override Camera Camera { get; }

CameraCandidate

Альтернатива для Camera, работает только если не используется Unity XR Origin. Если не задано, будет использован Camera.main.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

Предоставляется только при создании нового источника кадров. Доступен в течение всего жизненного цикла ARSession.

Начался ли ввод кадров с камеры.

protected override bool CameraFrameStarted { get; }

DesiredFrameRate

Желаемая частота кадров изображения камеры. Изменения вступят в силу только до события DeviceOpened.

Будет использовано значение, наиболее близкое к значению из SupportedFrameRate. Если не задано, будет использовано значение по умолчанию.

public Optional<double> DesiredFrameRate { 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; }

FrameRate

Текущая частота кадров устройства. Доступно только при Opened равном true.

Установка (set) использует значение, наиболее близкое к значению из SupportedFrameRate.

public double FrameRate { get; set; }

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; }

Size

Текущий размер изображения. Доступно только при Opened равном true.

Установка (set) использует размер, наиболее близкий к значению из SupportedSize.

Если размер изображения изменен во время записи FrameRecorder, запись данных прекратит обновление; потребуется закрыть и начать запись заново.

public Vector2Int Size { get; set; }

SupportedFrameRate

Все поддерживаемые частоты кадров для текущего устройства. Доступно только при Opened равном true.

public List<double> SupportedFrameRate { get; }

SupportedSize

Все поддерживаемые размеры изображения для текущего устройства. Доступно только при Opened равном true.

public List<Vector2Int> SupportedSize { get; }

Методы

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()

События

DeviceClosed

Событие закрытия устройства.

public event Action DeviceClosed

DeviceOpened

Событие открытия устройства. Значение bool указывает на успешность операции.

public event Action<bool, PermissionStatus, string> DeviceOpened