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; }
enabled
Начинает/останавливает захват видеопотока во время работы ARSession. После запуска сессии захват начнется только когда MonoBehaviour.enabled равно true.
public bool enabled { get; set; }
Методы
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