OpenXRSpatialAnchorCapability
Экспериментальное: This class may be changed or removed in future versions.
Наследует: OpenXRExtensionWrapper < Object
Реализация для обработки логики привязки пространственных объектов.
Описание
Это внутренний класс, который обрабатывает расширение OpenXR для пространственных сущностей-якорей.
Методы
create_new_anchor(transform: Transform3D, spatial_context: RID = RID()) |
|
create_persistence_context(scope: PersistenceScope, user_callback: Callable = Callable()) |
|
void |
free_persistence_context(persistence_context: RID) |
get_persistence_context_handle(persistence_context: RID) const |
|
persist_anchor(anchor_tracker: OpenXRAnchorTracker, persistence_context: RID = RID(), user_callback: Callable = Callable()) |
|
void |
remove_anchor(anchor_tracker: OpenXRAnchorTracker) |
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 после успешного завершения.