OpenXRMarkerTracker
Тип, размер, ID и нагрузка обнаруженного маркера.
Spatial tracker обнаруженного маркера. MarkerType определяет трактовку данных: QR/Micro QR используют строку или bytes, ArUco/AprilTag — тип, словарь и MarkerId. BoundsSize и payload не подтверждают валидную pose: проверяйте унаследованные tracking state и default pose.
Setter меняет только metadata, не распознаёт изображение и не включает камеру. Сопоставляйте содержимое с разрешёнными идентификаторами приложения. Все типы кодов на каждом runtime не гарантированы.
Рабочий пример и настройка. Проверены synthetic metadata и клиентская логика в Windows headless XR-off: 23 API случая и ранее 20 проверок helper. Реальное обнаружение, entity/context RID, persistence, шлем и изображение не проверены. Provider-owned tracker/pose/кешированные обёртки не освобождайте; собственный новый tracker допускает Dispose после завершения использования.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRMarkerTrackerКонструктор
public OpenXRMarkerTracker();Создаёт принадлежащий вызывающему RefCounted tracker без запуска OpenXR, регистрации в XRServer или обнаружения. Базовое состояние Paused, категория Anchor; Entity/context RID пусты. Для реального приложения обычно используйте заимствованный tracker, зарегистрированный provider, а не synthetic ресурс. Собственный экземпляр освобождайте после удаления своих ссылок/регистрации.
Свойства3
BoundsSizeСвойство
public Vector2 BoundsSize { get; set; }Сохранённый размер маркера, изначально Vector2.Zero. Setter просто записывает Vector2, не запускает камеру, не меняет tracker pose и не создаёт mesh/collider. Реальный размер поставляет runtime; metadata synthetic tracker не доказывает обнаружение.
MarkerIdСвойство
public uint MarkerId { get; set; }Числовой uint ID маркера, изначально 0. Для ArUco/AprilTag сопоставляйте вместе с типом и словарём; это не persistence UUID и не текст QR. Setter только сохраняет metadata; ID=0 сам по себе не признак ошибки.
MarkerTypeСвойство
public OpenXRSpatialComponentMarkerList.MarkerType MarkerType { get; set; }Тип маркера, изначально Unknown. Runtime может предоставлять QR, Micro QR, ArUco или AprilTag; проверяйте реальную поддержку каждого типа. Setter меняет только metadata, не запускает детектор и не выбирает словарь.
Методы8
GetBoundsSizeVector2
public Vector2 GetBoundsSize();Сохранённый размер маркера, изначально Vector2.Zero. Setter просто записывает Vector2, не запускает камеру, не меняет tracker pose и не создаёт mesh/collider. Реальный размер поставляет runtime; metadata synthetic tracker не доказывает обнаружение.
Vector2Сохранённый размер маркера, изначально Vector2.Zero. Setter просто записывает Vector2, не запускает камеру, не меняет tracker pose и не создаёт mesh/collider. Реальный размер поставляет runtime; metadata synthetic tracker не доказывает обнаружение.
GetMarkerDataVariant
public Variant GetMarkerData();Полезная нагрузка Variant, изначально Nil. Provider QR/Micro QR может возвращать String или PackedByteArray; C# SetMarkerData допускает и другие Variant, поэтому проверяйте VariantType перед чтением. Не используйте произвольный текст как путь/код; сопоставляйте разрешённые идентификаторы. Setter не декодирует маркер и сбрасывает internal buffer ID.
VariantПолезная нагрузка Variant, изначально Nil. Provider QR/Micro QR может возвращать String или PackedByteArray; C# SetMarkerData допускает и другие Variant, поэтому проверяйте VariantType перед чтением. Не используйте произвольный текст как путь/код; сопоставляйте разрешённые идентификаторы. Setter не декодирует маркер и сбрасывает internal buffer ID.
GetMarkerIduint
public uint GetMarkerId();Числовой uint ID маркера, изначально 0. Для ArUco/AprilTag сопоставляйте вместе с типом и словарём; это не persistence UUID и не текст QR. Setter только сохраняет metadata; ID=0 сам по себе не признак ошибки.
uintЧисловой uint ID маркера, изначально 0. Для ArUco/AprilTag сопоставляйте вместе с типом и словарём; это не persistence UUID и не текст QR. Setter только сохраняет metadata; ID=0 сам по себе не признак ошибки.
GetMarkerTypeOpenXRSpatialComponentMarkerList.MarkerType
public OpenXRSpatialComponentMarkerList.MarkerType GetMarkerType();Тип маркера, изначально Unknown. Runtime может предоставлять QR, Micro QR, ArUco или AprilTag; проверяйте реальную поддержку каждого типа. Setter меняет только metadata, не запускает детектор и не выбирает словарь.
OpenXRSpatialComponentMarkerList.MarkerTypeТип маркера, изначально Unknown. Runtime может предоставлять QR, Micro QR, ArUco или AprilTag; проверяйте реальную поддержку каждого типа. Setter меняет только metadata, не запускает детектор и не выбирает словарь.
SetBoundsSizevoid
public void SetBoundsSize(Vector2 boundsSize);Сохранённый размер маркера, изначально Vector2.Zero. Setter просто записывает Vector2, не запускает камеру, не меняет tracker pose и не создаёт mesh/collider. Реальный размер поставляет runtime; metadata synthetic tracker не доказывает обнаружение.
| Имя | Тип | По умолчанию |
|---|---|---|
boundsSize | Vector2 | — |
boundsSizeСохранённый размер маркера, изначально Vector2.Zero. Setter просто записывает Vector2, не запускает камеру, не меняет tracker pose и не создаёт mesh/collider. Реальный размер поставляет runtime; metadata synthetic tracker не доказывает обнаружение.
SetMarkerDatavoid
public void SetMarkerData(Variant markerData);Полезная нагрузка Variant, изначально Nil. Provider QR/Micro QR может возвращать String или PackedByteArray; C# SetMarkerData допускает и другие Variant, поэтому проверяйте VariantType перед чтением. Не используйте произвольный текст как путь/код; сопоставляйте разрешённые идентификаторы. Setter не декодирует маркер и сбрасывает internal buffer ID.
| Имя | Тип | По умолчанию |
|---|---|---|
markerData | Variant | — |
markerDataПолезная нагрузка Variant, изначально Nil. Provider QR/Micro QR может возвращать String или PackedByteArray; C# SetMarkerData допускает и другие Variant, поэтому проверяйте VariantType перед чтением. Не используйте произвольный текст как путь/код; сопоставляйте разрешённые идентификаторы. Setter не декодирует маркер и сбрасывает internal buffer ID.
SetMarkerIdvoid
public void SetMarkerId(uint markerId);Числовой uint ID маркера, изначально 0. Для ArUco/AprilTag сопоставляйте вместе с типом и словарём; это не persistence UUID и не текст QR. Setter только сохраняет metadata; ID=0 сам по себе не признак ошибки.
| Имя | Тип | По умолчанию |
|---|---|---|
markerId | uint | — |
markerIdЧисловой uint ID маркера, изначально 0. Для ArUco/AprilTag сопоставляйте вместе с типом и словарём; это не persistence UUID и не текст QR. Setter только сохраняет metadata; ID=0 сам по себе не признак ошибки.
SetMarkerTypevoid
public void SetMarkerType(OpenXRSpatialComponentMarkerList.MarkerType markerType);Тип маркера, изначально Unknown. Runtime может предоставлять QR, Micro QR, ArUco или AprilTag; проверяйте реальную поддержку каждого типа. Setter меняет только metadata, не запускает детектор и не выбирает словарь.
| Имя | Тип | По умолчанию |
|---|---|---|
markerType | OpenXRSpatialComponentMarkerList.MarkerType | — |
markerTypeТип маркера, изначально Unknown. Runtime может предоставлять QR, Micro QR, ArUco или AprilTag; проверяйте реальную поддержку каждого типа. Setter меняет только metadata, не запускает детектор и не выбирает словарь.