Table of Contents

Class ThreeDofCameraDeviceFrameSource

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

Компонент MonoBehaviour для управления устройством камеры 3DOF (ThreeDofCameraDeviceFrameSource) в сцене, предоставляющий расширение функциональности в среде Unity.

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

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

Поля

DesiredFocusMode

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

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

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

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

FrameRateRange

Диапазон частоты кадров. Доступно только когда Opened равно true.

public Vector2 FrameRateRange { 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().

Является ли текущий источник кадров гарнитурой. Если это гарнитура, диагностическая информация будет отображаться на 3D-панели перед камерой.

Некоторые фильтры кадров могут работать по-разному на устройствах.

protected override bool IsHMD { get; }

Opened

Открыта ли камера.

public bool Opened { get; }

Size

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

Присвоение значения установит ближайший размер из SupportedSize.

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

public Vector2Int Size { get; set; }

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