OpenXRSpatialAnchorCapability

Экспериментальное: This class may be changed or removed in future versions.

Наследует: OpenXRExtensionWrapper < Object

Реализация для обработки логики привязки пространственных объектов.

Описание

Это внутренний класс, который обрабатывает расширение OpenXR для пространственных сущностей-якорей.

Методы

OpenXRAnchorTracker

create_new_anchor(transform: Transform3D, spatial_context: RID = RID())

OpenXRFutureResult

create_persistence_context(scope: PersistenceScope, user_callback: Callable = Callable())

void

free_persistence_context(persistence_context: RID)

int

get_persistence_context_handle(persistence_context: RID) const

bool

is_persistence_scope_supported(scope: PersistenceScope)

bool

is_spatial_anchor_supported()

bool

is_spatial_persistence_supported()

OpenXRFutureResult

persist_anchor(anchor_tracker: OpenXRAnchorTracker, persistence_context: RID = RID(), user_callback: Callable = Callable())

void

remove_anchor(anchor_tracker: OpenXRAnchorTracker)

OpenXRFutureResult

unpersist_anchor(anchor_tracker: OpenXRAnchorTracker, persistence_context: RID = RID(), user_callback: Callable = Callable())


Перечисления

enum PersistenceScope: 🔗

PersistenceScope PERSISTENCE_SCOPE_SYSTEM_MANAGED = 1

Предоставляет приложению доступ только для чтения (т.е. приложение не может изменять эту область действия) к пространственным объектам, сохраняемым и управляемым системой. Приложение может использовать UUID в компоненте сохранения данных для этой области действия, чтобы сопоставлять объекты в разных пространственных контекстах и при перезагрузке устройства.

PersistenceScope PERSISTENCE_SCOPE_LOCAL_ANCHORS = 1000781000

Операции сохранения данных и доступ к ним ограничены пространственными привязками, на одном и том же устройстве, для одного и того же пользователя и одного и того же приложения (с использованием функций persist_anchor() и unpersist_anchor())


Описания метода

OpenXRAnchorTracker create_new_anchor(transform: Transform3D, spatial_context: RID = RID()) 🔗

Создает новый якорь, который будет отслеживаться средой выполнения XR. Параметр transform должен представлять собой преобразование в локальном пространстве вашего узла XROrigin3D. Если параметр spatial_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить параметр ProjectSettings.xr/openxr/extensions/spatial_entity/enable_builtin_anchor_detection. Возвращаемый трекер будет отслеживать местоположение в случае изменения нашего опорного пространства.


OpenXRFutureResult create_persistence_context(scope: PersistenceScope, user_callback: Callable = Callable()) 🔗

Создает новый контекст постоянного хранения данных.

Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является RID нашего контекста постоянного хранения.


void free_persistence_context(persistence_context: RID) 🔗

Освобождает контекст постоянного хранения, ранее созданный с помощью метода create_persistence_context().


int get_persistence_context_handle(persistence_context: RID) const 🔗

Возвращает внутренний дескриптор для данного контекста сохранения данных.

Примечание: Для реализаций GDExtension.


bool is_persistence_scope_supported(scope: PersistenceScope) 🔗

Возвращает true, если данная область сохранения поддерживается нашей возможностью пространственной привязки.

Примечание: Действительно только после создания экземпляра OpenXR.


bool is_spatial_anchor_supported() 🔗

Возвращает true, если аппаратное обеспечение поддерживает пространственные привязки. Возвращает допустимое значение только после инициализации OpenXR.


bool is_spatial_persistence_supported() 🔗

Возвращает true, если оборудование поддерживает постоянные пространственные привязки. Возвращает допустимое значение только после инициализации OpenXR.


OpenXRFutureResult persist_anchor(anchor_tracker: OpenXRAnchorTracker, persistence_context: RID = RID(), user_callback: Callable = Callable()) 🔗

Преобразует этот якорь в постоянный. Это означает, что его местоположение будет сохранено на устройстве, и якорь будет восстановлен при следующем запуске вашего приложения. Если persistence_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить ProjectSettings.xr/openxr/extensions/spatial_entity/enable_builtin_anchor_detection.

Примечание: Это асинхронный метод, который возвращает объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Значение результата этой функции — логическое значение, которое будет установлено в true после успешного завершения.


void remove_anchor(anchor_tracker: OpenXRAnchorTracker) 🔗

Удалите якорь, созданный ранее с помощью метода create_new_anchor(). Если этот якорь был постоянным, необходимо сначала вызвать метод unpersist_anchor() и дождаться его обратного вызова.


OpenXRFutureResult unpersist_anchor(anchor_tracker: OpenXRAnchorTracker, persistence_context: RID = RID(), user_callback: Callable = Callable()) 🔗

Удаляет постоянные данные из этого якоря. Среда выполнения не будет создавать якорь заново при перезапуске вашего приложения. Если persistence_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить ProjectSettings.xr/openxr/extensions/spatial_entity/enabled.

Примечание: Это асинхронный метод, который возвращает объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Значение результата этой функции — логическое значение, которое будет установлено в true после успешного завершения.