Class InertialCameraDeviceFrameSource
- Пространство имен
- easyar
- Сборка
- EasyAR.Sense.dll
Компонент easyar.InertialCameraDevice для управления в сцене, предоставляющий расширение функциональности в среде Unity.
Этот источник кадров (frame-source) является устройством отслеживания с 5 степенями свободы (5DOF) (вращение + горизонтальное смещение), выводящим данные движения в ARSession.
public class InertialCameraDeviceFrameSource : FrameSource
- Наследование
-
InertialCameraDeviceFrameSource
- Наследуемые члены
Поля
DesiredFocusMode
Желаемый режим фокусировки. Изменения вступают в силу только до события DeviceOpened или метода OnEnable.
Примечание: Из-за ограничений оборудования или системы переключение фокуса может не работать на некоторых устройствах.
public InertialCameraDeviceFocusMode DesiredFocusMode
Свойства
Camera
Предоставляется только при создании нового источника кадров (frame-source). Доступно только во время процесса Assemble().
На настольных устройствах или телефонах эта камера представляет Camera в виртуальном мире, соответствующее реальному камере устройства. Ее матрица проекции и положение будут соответствовать реальной камере и управляться EasyAR. На гарнитуре эта камера используется только для отображения диагностического текста перед глазами, не для рендеринга сцены, и не управляется EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Альтернатива для Camera, действует только если не используется Unity XR Origin. Если не задано, используется Camera.main.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Предоставляется только при создании нового источника кадров (frame-source). Доступно в течение всего жизненного цикла ARSession.
Начался ли ввод кадров с камеры.
protected override bool CameraFrameStarted { get; }
DesiredSize
Желаемый размер изображения камеры. Изменения вступают в силу только до события DeviceOpened.
Используется размер, наиболее близкий к значению из SupportedSize. Если не задано, используется значение по умолчанию.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Предоставляется только при создании нового источника кадров (frame-source). Доступно только когда CameraFrameStarted равно true.
Предоставляет физическую камеру(-ы) устройства, поставляющую(-ие) данные кадров. Если данные кадров поступают с нескольких камер, список должен включать их все.
Убедитесь, что значение корректно, когда CameraFrameStarted равно true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Предоставляется только при создании нового источника кадров (frame-source). Доступно только во время процесса Assemble().
Предоставляет информацию о системе отображения. Вы можете использовать DefaultSystemDisplay или DefaultHMDDisplay для получения информации о дисплее по умолчанию.
protected override IDisplay Display { get; }
FrameRateRange
Диапазон частоты кадров. Доступно только когда Opened равно true.
public Vector2 FrameRateRange { get; }
IsAvailable
Предоставляется только при создании нового источника кадров (frame-source). Доступно только во время процесса Assemble().
Доступен ли текущий источник кадров.
Если значение равно null, будет вызван CheckAvailability(), и значение будет получено после завершения Coroutine.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Предоставляется только при создании нового источника кадров (frame-source). Доступно только во время процесса Assemble().
Когда значение true, сессия (session) будет обновлять transform камеры и рендерить изображение с камеры.
При создании расширения для гарнитуры оно должно быть false. Вы должны полностью управлять 3D камерой в сцене. Вы должны обрабатывать рендеринг камеры, особенно в режиме VST (Video See-Through).
protected override bool IsCameraUnderControl { get; }
IsHMD
Предоставляется только при создании нового источника кадров (frame-source). Доступно только во время процесса Assemble().
Является ли текущий источник кадров гарнитурой (head-mounted). Если это гарнитура, диагностическая информация будет отображаться на 3D панели перед камерой.
Некоторые фильтры кадров (frame-filter) могут работать по-разному на устройстве.
protected override bool IsHMD { get; }
Opened
Открыта ли камера.
public bool Opened { get; }
Size
Текущий размер изображения. Доступно только когда Opened равно true.
Установка (set) использует размер, наиболее близкий к значению из SupportedSize.
Если размер изображения изменен во время записи FrameRecorder, запись данных прекратится, и потребуется остановить и начать запись заново.
public Vector2Int Size { get; set; }
SupportedSize
Все поддерживаемые устройством размеры изображения. Доступно только когда Opened равно true.
public List<Vector2Int> SupportedSize { get; }
Методы
Close()
Закрыть устройство.
public void Close()
OnSessionStart(ARSession)
Предоставляется только при создании нового источника кадров (frame-source). Доступно только во время процесса StartSession().
Обрабатывает запуск сессии (session), если этот источник кадров был собран в Assembly. Этот метод предназначен для отложенной инициализации; здесь можно выполнить специфичную для AR инициализацию.
protected override void OnSessionStart(ARSession session)
Параметры
session
OnSessionStop()
Предоставляется только при создании нового источника кадров (frame-source). Доступно во время StopSession(bool) или других процессов остановки/повреждения сессии.
Обрабатывает остановку сессии (session), если этот источник кадров был собран в Assembly. Этот метод можно использовать для уничтожения ресурсов, созданных в StartSession() и во время работы сессии, и восстановления внутреннего состояния. Гарантируется вызов этого метода перед уничтожением сессии. Если источник кадров уничтожается до сессии, он не будет вызван, и сессия будет повреждена.
protected override void OnSessionStop()
Open()
Открыть устройство. Если Open() и Close() не вызываются вручную, ARSession автоматически вызовет Open() после запуска.
public void Open()
ResetInertial()
Сбросить состояние.
public void ResetInertial()
События
DeviceClosed
Событие закрытия устройства.
public event Action DeviceClosed
DeviceOpened
Событие открытия устройства. Значение bool указывает на успешность операции.
public event Action<bool, PermissionStatus, string> DeviceOpened