reckfellENGINE

OpenXRSpatialEntityTracker

Данные tracking пространственного объекта OpenXR.

На этой странице
class OpenXRSpatialEntityTrackerReckfellSharpНаследует XRPositionalTracker

RefCounted данные provider, а не игровая Entity или ECS. Tracker относится к XRServer категории Anchor; XRAnchor3D под XROrigin3D связывается по Name и pose default. Для использования одновременно требуются SpatialTrackingState=Tracking и HasTrackingData у pose. Ручной setter состояния не создаёт tracking.

Entity — backend RID, за который отвечает tracker; не освобождайте его отдельно. SpatialContext после первого назначения нельзя переключить. Name/RID не сохраняются как UUID. Дополнительные Next структуры образуют связанный список, повторное добавление может создать цикл.

Рабочий пример и настройка. Проверены 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

OpenXRSpatialEntityTrackerКонструктор
# OpenXRSpatialEntityTracker
C#
public OpenXRSpatialEntityTracker();

Создаёт принадлежащий вызывающему RefCounted tracker без запуска OpenXR, регистрации в XRServer или обнаружения. Базовое состояние Paused, категория Anchor; Entity/context RID пусты. Для реального приложения обычно используйте заимствованный tracker, зарегистрированный provider, а не synthetic ресурс. Собственный экземпляр освобождайте после удаления своих ссылок/регистрации.

Свойства2

EntityСвойство
# Entity
C#
public Rid Entity { get; set; }

RID пространственного объекта runtime, не игровая Entity и не UUID. Изначально пустой. Назначение передаёт трекеру управление этим RID: замена/уничтожение трекера освобождает прежний объект через spatial extension. Не освобождайте RID встроенного трекера самостоятельно и не назначайте произвольный Rid; IsValid не проверяет живого владельца.

SpatialTrackingStateСвойство
# SpatialTrackingState
C#
public OpenXRSpatialEntityTracker.EntityTrackingState SpatialTrackingState { get; set; }

Состояние пространственного tracking, изначально Paused: Tracking, Paused или Stopped. Setter меняет metadata и при отличии испускает SpatialTrackingStateChanged; не создаёт pose, не включает обнаружение и не валидирует позицию. Перед использованием также проверяйте GetPose("default").HasTrackingData.

Методы9

AddNextvoid
# AddNext
C#
public void AddNext(OpenXRStructureBase next);

Добавляет структуру в начало цепочки: новый Next указывает на прежнюю голову. Null игнорируется, успешное добавление испускает NextChanged. Метод меняет ссылки самой структуры; используйте отдельный экземпляр и не добавляйте уже включённую структуру повторно — возможен цикл. Не запрашивает capability у runtime.

Параметры
ИмяТипПо умолчанию
nextOpenXRStructureBase—
next

Добавляет структуру в начало цепочки: новый Next указывает на прежнюю голову. Null игнорируется, успешное добавление испускает NextChanged. Метод меняет ссылки самой структуры; используйте отдельный экземпляр и не добавляйте уже включённую структуру повторно — возможен цикл. Не запрашивает capability у runtime.

GetEntityRid
# GetEntity
C#
public Rid GetEntity();

RID пространственного объекта runtime, не игровая Entity и не UUID. Изначально пустой. Назначение передаёт трекеру управление этим RID: замена/уничтожение трекера освобождает прежний объект через spatial extension. Не освобождайте RID встроенного трекера самостоятельно и не назначайте произвольный Rid; IsValid не проверяет живого владельца.

Возвращает Rid

RID пространственного объекта runtime, не игровая Entity и не UUID. Изначально пустой. Назначение передаёт трекеру управление этим RID: замена/уничтожение трекера освобождает прежний объект через spatial extension. Не освобождайте RID встроенного трекера самостоятельно и не назначайте произвольный Rid; IsValid не проверяет живого владельца.

GetNextOpenXRStructureBase
# GetNext
C#
public OpenXRStructureBase GetNext();

Заимствованный первый OpenXRStructureBase в цепочке дополнительных структур либо null. Это связанный список параметров расширений, не дочерние Entity. Не изменяйте/не освобождайте provider-owned структуры; новые собственные структуры отсоединяйте перед освобождением.

Возвращает OpenXRStructureBase

Заимствованный первый OpenXRStructureBase в цепочке дополнительных структур либо null. Это связанный список параметров расширений, не дочерние Entity. Не изменяйте/не освобождайте provider-owned структуры; новые собственные структуры отсоединяйте перед освобождением.

GetSpatialContextRid
# GetSpatialContext
C#
public Rid GetSpatialContext();

Пространственный context RID, изначально пустой. После назначения валидного RID setter отвергает переключение на другой context, включая пустой: создавайте новый tracker. Получение не передаёт владение context; встроенный context движка не освобождайте. Сам setter не проверяет готовность OpenXR context.

Возвращает Rid

Пространственный context RID, изначально пустой. После назначения валидного RID setter отвергает переключение на другой context, включая пустой: создавайте новый tracker. Получение не передаёт владение context; встроенный context движка не освобождайте. Сам setter не проверяет готовность OpenXR context.

GetSpatialTrackingStateOpenXRSpatialEntityTracker.EntityTrackingState
# GetSpatialTrackingState
C#
public OpenXRSpatialEntityTracker.EntityTrackingState GetSpatialTrackingState();

Состояние пространственного tracking, изначально Paused: Tracking, Paused или Stopped. Setter меняет metadata и при отличии испускает SpatialTrackingStateChanged; не создаёт pose, не включает обнаружение и не валидирует позицию. Перед использованием также проверяйте GetPose("default").HasTrackingData.

Возвращает OpenXRSpatialEntityTracker.EntityTrackingState

Состояние пространственного tracking, изначально Paused: Tracking, Paused или Stopped. Setter меняет metadata и при отличии испускает SpatialTrackingStateChanged; не создаёт pose, не включает обнаружение и не валидирует позицию. Перед использованием также проверяйте GetPose("default").HasTrackingData.

RemoveNextvoid
# RemoveNext
C#
public void RemoveNext(OpenXRStructureBase next);

Удаляет первое совпадение ссылки из цепочки, очищает Next удалённой структуры и испускает NextChanged. Null и отсутствующий элемент ничего не меняют. Не уничтожает ресурс и не отменяет уже отправленный асинхронный запрос; provider-owned цепочку не редактируйте.

Параметры
ИмяТипПо умолчанию
nextOpenXRStructureBase—
next

Удаляет первое совпадение ссылки из цепочки, очищает Next удалённой структуры и испускает NextChanged. Null и отсутствующий элемент ничего не меняют. Не уничтожает ресурс и не отменяет уже отправленный асинхронный запрос; provider-owned цепочку не редактируйте.

SetEntityvoid
# SetEntity
C#
public void SetEntity(Rid entity);

RID пространственного объекта runtime, не игровая Entity и не UUID. Изначально пустой. Назначение передаёт трекеру управление этим RID: замена/уничтожение трекера освобождает прежний объект через spatial extension. Не освобождайте RID встроенного трекера самостоятельно и не назначайте произвольный Rid; IsValid не проверяет живого владельца.

Параметры
ИмяТипПо умолчанию
entityRid—
entity

RID пространственного объекта runtime, не игровая Entity и не UUID. Изначально пустой. Назначение передаёт трекеру управление этим RID: замена/уничтожение трекера освобождает прежний объект через spatial extension. Не освобождайте RID встроенного трекера самостоятельно и не назначайте произвольный Rid; IsValid не проверяет живого владельца.

SetSpatialContextvoid
# SetSpatialContext
C#
public void SetSpatialContext(Rid spatialContext);

Пространственный context RID, изначально пустой. После назначения валидного RID setter отвергает переключение на другой context, включая пустой: создавайте новый tracker. Получение не передаёт владение context; встроенный context движка не освобождайте. Сам setter не проверяет готовность OpenXR context.

Параметры
ИмяТипПо умолчанию
spatialContextRid—
spatialContext

Пространственный context RID, изначально пустой. После назначения валидного RID setter отвергает переключение на другой context, включая пустой: создавайте новый tracker. Получение не передаёт владение context; встроенный context движка не освобождайте. Сам setter не проверяет готовность OpenXR context.

SetSpatialTrackingStatevoid
# SetSpatialTrackingState
C#
public void SetSpatialTrackingState(OpenXRSpatialEntityTracker.EntityTrackingState spatialTrackingState);

Состояние пространственного tracking, изначально Paused: Tracking, Paused или Stopped. Setter меняет metadata и при отличии испускает SpatialTrackingStateChanged; не создаёт pose, не включает обнаружение и не валидирует позицию. Перед использованием также проверяйте GetPose("default").HasTrackingData.

Параметры
ИмяТипПо умолчанию
spatialTrackingStateOpenXRSpatialEntityTracker.EntityTrackingState—
spatialTrackingState

Состояние пространственного tracking, изначально Paused: Tracking, Paused или Stopped. Setter меняет metadata и при отличии испускает SpatialTrackingStateChanged; не создаёт pose, не включает обнаружение и не валидирует позицию. Перед использованием также проверяйте GetPose("default").HasTrackingData.

Сигналы и события2

NextChangedСобытие
# NextChanged
C#
public event Action NextChanged;

Сигнал изменения списка дополнительных структур через AddNext/RemoveNext. Не означает, что изменилась pose, обнаружен объект или runtime применил параметры. Прямое изменение поля Next самих структур не обязано проходить через этот сигнал.

SpatialTrackingStateChangedСобытие
# SpatialTrackingStateChanged
C#
public event OpenXRSpatialEntityTracker.SpatialTrackingStateChangedEventHandler SpatialTrackingStateChanged;

Сигнал смены spatial state; аргумент C# имеет тип long. Приводите к EntityTrackingState после проверки ожидаемого значения. Повторное присваивание того же состояния не испускает сигнал. Это не гарантия валидной pose или готовой геометрии; управляйте видимостью и collision отдельно.

Параметры обработчика
ИмяТипПо умолчанию
spatialTrackingStatelong—
spatialTrackingState

Новое состояние как long, соответствующее EntityTrackingState; не подтверждает валидную pose.

OpenXRSpatialEntityTracker.EntityTrackingState

ЗначениеОписание
Paused = 2

Отслеживание на данный момент приостановлено.

Stopped = 1

Эта привязка перестала отслеживать.

Tracking = 3

Эта привязка сейчас отслеживается.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.