Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
OpenXRSpatialAnchorCapability
Экспериментальное: This class may be changed or removed in future versions.
Наследует: OpenXRExtensionWrapper < Object
Реализация для обработки логики привязки пространственных объектов.
Описание
Это внутренний класс, который обрабатывает расширение OpenXR для пространственных сущностей-якорей.
Методы
create_default_persistence_context(user_callback: Callable = Callable()) |
|
create_new_anchor(transform: Transform3D, spatial_context: RID = RID(), next: OpenXRStructureBase = null) |
|
create_persistence_context(scope: PersistenceScope, user_callback: Callable = Callable()) |
|
void |
do_entity_update(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next_snapshot_create: OpenXRStructureBase = null, next_snapshot_query: OpenXRStructureBase = null) |
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) |
start_entity_discovery(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next_snapshot_create: OpenXRStructureBase = null, next_snapshot_query: OpenXRStructureBase = null, user_callback: Callable = Callable()) |
|
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())
Описания метода
OpenXRFutureResult create_default_persistence_context(user_callback: Callable = Callable()) 🔗
Вызывает метод create_persistence_context() с конфигурацией, которая, вероятно, будет работать с средой выполнения XR.
user_callback вызывается при создании контекста.
OpenXRAnchorTracker create_new_anchor(transform: Transform3D, spatial_context: RID = RID(), next: OpenXRStructureBase = null) 🔗
Создает новый якорь, который будет отслеживаться средой выполнения XR. Параметр transform должен представлять собой преобразование в локальном пространстве вашего узла XROrigin3D. Если параметр spatial_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить параметр ProjectSettings.xr/openxr/extensions/spatial_entity/enable_builtin_anchor_detection. Возвращаемый трекер будет отслеживать местоположение в случае изменения нашего опорного пространства.
Параметр next должен быть допустимым объектом next для цепочки XrSpatialAnchorCreateInfoEXT.
OpenXRFutureResult create_persistence_context(scope: PersistenceScope, user_callback: Callable = Callable()) 🔗
Создает новый контекст постоянного хранения данных.
Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является RID нашего контекста постоянного хранения.
void do_entity_update(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next_snapshot_create: OpenXRStructureBase = null, next_snapshot_query: OpenXRStructureBase = null) 🔗
Вызывает OpenXRSpatialEntityExtension.update_spatial_entities() и OpenXRSpatialEntityExtension.query_snapshot() с сущностями-якорями, связанными с spatial_context.
component_data — это OpenXRSpatialComponentData, которые необходимо обновить для этой возможности якоря.
Если next_snapshot_create не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.update_spatial_entities().
Если next_snapshot_query не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.query_snapshot().
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 start_entity_discovery(spatial_context: RID, component_data: Array[OpenXRSpatialComponentData], next_snapshot_create: OpenXRStructureBase = null, next_snapshot_query: OpenXRStructureBase = null, user_callback: Callable = Callable()) 🔗
Вызывает OpenXRSpatialEntityExtension.discover_spatial_entities() и OpenXRSpatialEntityExtension.query_snapshot() с сущностями-якорями, связанными с spatial_context.
component_data — это OpenXRSpatialComponentData, которые необходимо обнаружить для этой возможности якоря.
Если next_snapshot_create не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.discover_spatial_entities().
Если next_snapshot_query не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.query_snapshot().
user_callback, если он не равен null, вызывается с двумя параметрами, обычно дважды. Первый параметр — это RID снимка обнаружения, а второй параметр — логическое значение, где false указывает, что снимок обнаружения вот-вот будет обработан, а true указывает, что снимок обнаружения был обработан и component_data содержит допустимые данные. Второй вызов пропускается, если возникла ошибка.
Возвращаемый OpenXRFutureResult идентичен результату, возвращаемому методом OpenXRSpatialEntityExtension.discover_spatial_entities().
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 после успешного завершения.