Class AREngineFrameSource
- Пространство имен
- easyar
- Сборка
- EasyAR.Sense.dll
Подключает выход камеры AREngine к пользовательскому источнику кадров EasyAR на сцене. Обеспечивает поддержку Huawei AR Engine через функционал пользовательской камеры EasyAR Sense.
Этот источник кадров является устройством отслеживания движения, которое выводит данные движения в ARSession.
Этот источник кадров не использует ``Huawei AR Engine Unity SDK``, и его не нужно добавлять.
public class AREngineFrameSource : FrameSource
- Наследование
-
AREngineFrameSource
- Наследуемые члены
Поля
DesiredFocusMode
Желаемый режим фокусировки. Изменения вступят в силу только до события DeviceOpened или до OnEnable.
Примечание: Из-за ограничений оборудования или системы переключение фокусировки может не работать на некоторых устройствах.
public AREngineCameraDeviceFocusMode 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; }
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 (Video See-Through).
protected override bool IsCameraUnderControl { get; }
IsHMD
Предоставляется только при создании нового источника кадров. Доступ осуществляется только в процессе Assemble().
Является ли текущий источник кадров гарнитурой (HMD). Если это гарнитура, диагностическая информация будет отображаться на 3D-панели перед камерой.
Некоторые фильтры кадров могут работать по-разному на устройствах.
protected override bool IsHMD { get; }
Opened
Открыта ли камера.
public bool Opened { get; }
Size
Текущий размер изображения. Доступно только когда Opened имеет значение true.
public Optional<Vector2Int> Size { 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() не вызываются вручную, устройство автоматически откроется (Open()) после запуска ARSession.
public void Open()
События
DeviceClosed
Событие закрытия устройства.
public event Action DeviceClosed
DeviceOpened
Событие открытия устройства. Значение bool указывает на успешность операции.
public event Action<bool, PermissionStatus, string> DeviceOpened