OpenXRSpatialComponentMesh2DList
Данные spatial snapshot: OpenXRSpatialComponentMesh2DList.
Контейнер native component data для QuerySnapshot, не tracker, игровая Entity или готовая геометрия. В массиве запроса первым должен идти OpenXRSpatialQueryResultData; индексы остальных компонентов относятся к тем же строкам. Проверяйте поддержку компонента, успешный query и state строки до чтения значений.
SetCapacity выделяет память, но не делает её данными устройства. GetCapacity у query-result показывает длину выделенного массива; она может быть ненулевой без единого запроса. При ошибке/незавершённом запросе не используйте прежнее содержимое. Финальные output counts между двумя проходами отдельно публично не доступны; изменение количества результатов в runtime здесь не проверено.
Buffer getters требуют тот же живой snapshot. Скопируйте нужные массивы/строки до FreeSpatialSnapshot или конца borrowed capability callback. Не освобождайте snapshot повторно; свои контейнеры держите живыми на время использования. Raw poses не являются готовыми GlobalTransform и не применяют WorldOrigin/reference frame/WorldScale автоматически.
Origin локальных XY vertices относительно tracking space, не world transform и не готовый XRAnchor3D mesh offset. Читайте только из успешно заполненной строки с валидным state. Сопоставляйте с pose объекта и системой координат; getter не выполняет scene/world rebasing.
Рабочая интеграция. На Windows XR-off выполнены 11 проверок metadata/capacity/virtual dispatch без чтения незаполненной памяти. Реальный snapshot, buffer values, pose/UUID/marker decoding, шлем и export не проверены. Движок не менялся.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRSpatialComponentMesh2DListКонструктор
public OpenXRSpatialComponentMesh2DList();Создаёт принадлежащий вызывающему RefCounted контейнер query data с пустыми буферами. Не выполняет QuerySnapshot и не получает данные устройства. Выделение через SetCapacity не заполняет строки. Удерживайте свои контейнеры до окончания native запроса; provider-owned ресурсы не освобождайте.
Методы3
GetIndicesint[]
public int[] GetIndices(Rid snapshot, long index);Копирует triangle indices из того же живого snapshot в int[]. Поддержанные UInt8/UInt16/UInt32 буферы преобразуются в signed int; проверяйте >=0, диапазон vertices и кратность трём до построения mesh. При отсутствующем ID/ошибке результат пустой; сам getter не создаёт/не проверяет треугольники.
| Имя | Тип | По умолчанию |
|---|---|---|
snapshot | Rid | — |
index | long | — |
snapshotЖивой snapshot RID именно этого результата; копируйте buffer data до его освобождения. IsValid не проверяет живого владельца.
indexНулевой index заполненной строки того же успешного snapshot query, не entity ID. Совпадает с index в OpenXRSpatialQueryResultData; одной выделенной capacity недостаточно.
int[]Копирует triangle indices из того же живого snapshot в int[]. Поддержанные UInt8/UInt16/UInt32 буферы преобразуются в signed int; проверяйте >=0, диапазон vertices и кратность трём до построения mesh. При отсутствующем ID/ошибке результат пустой; сам getter не создаёт/не проверяет треугольники.
GetTransformTransform3D
public Transform3D GetTransform(long index);Origin локальных XY vertices относительно tracking space, не world transform и не готовый XRAnchor3D mesh offset. Читайте только из успешно заполненной строки с валидным state. Сопоставляйте с pose объекта и системой координат; getter не выполняет scene/world rebasing.
| Имя | Тип | По умолчанию |
|---|---|---|
index | long | — |
indexНулевой index заполненной строки того же успешного snapshot query, не entity ID. Совпадает с index в OpenXRSpatialQueryResultData; одной выделенной capacity недостаточно.
Transform3DOrigin локальных XY vertices относительно tracking space, не world transform и не готовый XRAnchor3D mesh offset. Читайте только из успешно заполненной строки с валидным state. Сопоставляйте с pose объекта и системой координат; getter не выполняет scene/world rebasing.
GetVerticesVector2[]
public Vector2[] GetVertices(Rid snapshot, long index);Копирует Vector2 vertex buffer выбранной строки из того же живого snapshot. Нужны успешный QuerySnapshot, допустимый index и буфер Vector2F; при отсутствии buffer ID возвращается пустой массив. Скопируйте данные до FreeSpatialSnapshot/конца borrowed callback. Массив локальной XY геометрии не является Mesh; пустой результат сам по себе не подтверждает отсутствие поверхности.
| Имя | Тип | По умолчанию |
|---|---|---|
snapshot | Rid | — |
index | long | — |
snapshotЖивой snapshot RID именно этого результата; копируйте buffer data до его освобождения. IsValid не проверяет живого владельца.
indexНулевой index заполненной строки того же успешного snapshot query, не entity ID. Совпадает с index в OpenXRSpatialQueryResultData; одной выделенной capacity недостаточно.
Vector2[]Копирует Vector2 vertex buffer выбранной строки из того же живого snapshot. Нужны успешный QuerySnapshot, допустимый index и буфер Vector2F; при отсутствии buffer ID возвращается пустой массив. Скопируйте данные до FreeSpatialSnapshot/конца borrowed callback. Массив локальной XY геометрии не является Mesh; пустой результат сам по себе не подтверждает отсутствие поверхности.