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 у компоненті persistent для цієї області видимості, щоб співвідносити сутності в різних просторових контекстах та перезавантаженнях пристроїв.
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 повинен бути дійсним наступним об’єктом для ланцюга 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 не є нульовим, передайте його до параметра 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 не є нульовим, передайте його до параметра next у OpenXRSpatialEntityExtension.discover_spatial_entities().
Якщо next_snapshot_query не дорівнює нулю, передайте це до параметра next у OpenXRSpatialEntityExtension.query_snapshot().
user_callback, якщо не дорівнює нулю, викликається з двома параметрами, зазвичай двічі. Перший параметр — це 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 після успішного завершення.