Class MotionTrackerFrameSource
- Пространство имен
- easyar
- Сборка
- EasyAR.Sense.dll
easyar.MotionTrackerCameraDevice, управляющий в сцене, расширяющий функциональность в среде Unity.
Этот источник кадров - устройство отслеживания движения, которое выводит данные движения в ARSession.
public class MotionTrackerFrameSource : FrameSource
- Наследование
-
MotionTrackerFrameSource
- Наследуемые члены
Свойства
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; }
DesiredFocusMode
Желаемый режим фокусировки. Изменения вступают в силу только до события DeviceOpened или OnEnable.
Примечание: Из-за ограничений оборудования или системы переключение фокуса может не работать на некоторых устройствах.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
Желаемая частота кадров устройства. Изменения вступают в силу только до события DeviceOpened или OnEnable.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
Желаемый минимально допустимый уровень качества. Изменения вступают в силу только до Assemble().
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
Желаемое разрешение. Изменения вступают в силу только до события DeviceOpened или OnEnable.
Если размер изображения изменен во время записи FrameRecorder, запись данных прекратит обновляться; потребуется закрыть и перезаписать.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
Желаемый режим отслеживания. Изменения вступают в силу только до запуска сессии.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }
DeviceCameras
Предоставляется только при создании нового источника кадров. Доступно, когда CameraFrameStarted = true.
Предоставляет устройство(а) камеры, поставляющие данные кадров. Если данные кадров поступают с нескольких камер, список должен включать их все.
Убедитесь, что значение верно при CameraFrameStarted = true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
DeviceQualityLevel
Получает качество Motion Tracking на устройстве. В сочетании с контекстом приложения, это значение можно использовать для определения, следует ли запускать Motion Tracking.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { 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; }
LocalPointCloud
Текущая позиционная информация данных облака точек. Доступно только при Opened = true.
public List<Vector3> LocalPointCloud { get; }
Opened
Открыта ли камера.
public bool Opened { get; }
Size
Текущий размер изображения. Доступно только при Opened и MonoBehaviour.enabled оба равны true.
public Vector2Int Size { get; }
Методы
Close()
Закрыть устройство.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
Hit Test на горизонтальных плоскостях, обнаруженных в реальном времени в текущем поле зрения. При попадании на плоскость возвращает позицию ближайшей 3D-точки на этой плоскости к лучу Hit Test.pointInView должен быть нормализован в [0, 1]^2.
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
Параметры
pointInView
HitTestAgainstPointCloud(Vector2)
Hit Test в текущем облаке точек, возвращает позицию ближайшей 3D-точки на луче от камеры (ближняя к дальней).pointInView должен быть нормализован в [0, 1]^2.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
Параметры
pointInView
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