Class ARCoreFrameSource
- Пространство имен
- easyar
- Сборка
- EasyAR.Sense.dll
MonoBehaviour для управления устройством камеры ARCore (easyar.ARCoreCameraDevice) в сцене, предоставляющий расширенные функции в среде Unity.
Этот источник кадров является устройством отслеживания движения, которое выводит данные о движении в ARSession.
public class ARCoreFrameSource : FrameSource
- Наследование
-
ARCoreFrameSource
- Наследуемые члены
Поля
DesiredFocusMode
Желаемый режим фокусировки. Изменения вступают в силу, только если они сделаны перед событием DeviceOpened или включением (OnEnable).
Примечание: Из-за ограничений оборудования или системы включение/выключение фокусировки может не работать на некоторых устройствах.
public ARCoreCameraDeviceFocusMode 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().
Является ли текущий источник кадров гарнитурой (head-mounted). Если да, диагностическая информация будет отображаться на 3D-панели перед камерой.
Некоторые фильтры кадров могут работать по-разному на устройстве.
protected override bool IsHMD { get; }
Opened
Открыта ли камера.
public bool Opened { get; }
Size
Текущий размер изображения. Доступно только при Opened == true.
public 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() не вызываются вручную, ARSession автоматически выполнит Open() после запуска.
public void Open()
События
DeviceClosed
Событие закрытия устройства.
public event Action DeviceClosed
DeviceOpened
Событие открытия устройства. Значение bool указывает на успешность операции.
public event Action<bool, PermissionStatus, string> DeviceOpened