OpenXRSpatialAnchorCapability
Реализация для обработки логики привязки пространственных объектов.
Реализация для обработки логики привязки пространственных объектов.
Это внутренний класс, который обрабатывает расширение OpenXR для пространственных сущностей-якорей.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRSpatialAnchorCapabilityКонструктор
public OpenXRSpatialAnchorCapability();Методы14
CreateDefaultPersistenceContextOpenXRFutureResult
public OpenXRFutureResult CreateDefaultPersistenceContext(Callable userCallback = default);Вызывает метод OpenXRSpatialAnchorCapability.CreatePersistenceContext с конфигурацией, которая, вероятно, будет работать с средой выполнения XR.
user_callback вызывается при создании контекста.
| Имя | Тип | По умолчанию |
|---|---|---|
userCallback | Callable | default |
OpenXRFutureResultCreateNewAnchor2 перегрузки
public OpenXRAnchorTracker CreateNewAnchor(Transform3D transform, Rid spatialContext);Создает новый якорь, который будет отслеживаться средой выполнения XR. Параметр transform должен представлять собой преобразование в локальном пространстве вашего узла XROrigin3D. Если параметр spatial_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить параметр ProjectSettings.xr/openxr/extensions/spatial_entity/enable_builtin_anchor_detection. Возвращаемый трекер будет отслеживать местоположение в случае изменения нашего опорного пространства.
Параметр next должен быть допустимым объектом next для цепочки XrSpatialAnchorCreateInfoEXT.
| Имя | Тип | По умолчанию |
|---|---|---|
transform | Transform3D | — |
spatialContext | Rid | — |
OpenXRAnchorTrackerpublic OpenXRAnchorTracker CreateNewAnchor(Transform3D transform, Rid spatialContext = default, OpenXRStructureBase next = null);Создает новый якорь, который будет отслеживаться средой выполнения XR. Параметр transform должен представлять собой преобразование в локальном пространстве вашего узла XROrigin3D. Если параметр spatial_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить параметр ProjectSettings.xr/openxr/extensions/spatial_entity/enable_builtin_anchor_detection. Возвращаемый трекер будет отслеживать местоположение в случае изменения нашего опорного пространства.
Параметр next должен быть допустимым объектом next для цепочки XrSpatialAnchorCreateInfoEXT.
| Имя | Тип | По умолчанию |
|---|---|---|
transform | Transform3D | — |
spatialContext | Rid | default |
next | OpenXRStructureBase | null |
OpenXRAnchorTrackerCreatePersistenceContextOpenXRFutureResult
public OpenXRFutureResult CreatePersistenceContext(OpenXRSpatialAnchorCapability.PersistenceScope scope, Callable userCallback = default);Создает новый контекст постоянного хранения данных.
Примечание: Это асинхронный метод, возвращающий объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Результатом этой функции является Rid нашего контекста постоянного хранения.
| Имя | Тип | По умолчанию |
|---|---|---|
scope | OpenXRSpatialAnchorCapability.PersistenceScope | — |
userCallback | Callable | default |
OpenXRFutureResultDoEntityUpdatevoid
public void DoEntityUpdate(Rid spatialContext, Reckfell.Collections.Array<OpenXRSpatialComponentData> componentData, OpenXRStructureBase nextSnapshotCreate = null, OpenXRStructureBase nextSnapshotQuery = null);Вызывает OpenXRSpatialEntityExtension.UpdateSpatialEntities и OpenXRSpatialEntityExtension.QuerySnapshot с сущностями-якорями, связанными с spatial_context.
component_data — это OpenXRSpatialComponentData, которые необходимо обновить для этой возможности якоря.
Если next_snapshot_create не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.UpdateSpatialEntities.
Если next_snapshot_query не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.QuerySnapshot.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
componentData | Reckfell.Collections.Array<OpenXRSpatialComponentData> | — |
nextSnapshotCreate | OpenXRStructureBase | null |
nextSnapshotQuery | OpenXRStructureBase | null |
FreePersistenceContextvoid
public void FreePersistenceContext(Rid persistenceContext);Освобождает контекст постоянного хранения, ранее созданный с помощью метода OpenXRSpatialAnchorCapability.CreatePersistenceContext.
| Имя | Тип | По умолчанию |
|---|---|---|
persistenceContext | Rid | — |
GetPersistenceContextHandleulong
public ulong GetPersistenceContextHandle(Rid persistenceContext);Возвращает внутренний дескриптор для данного контекста сохранения данных. Примечание: Для реализаций ReckfellExtension.
| Имя | Тип | По умолчанию |
|---|---|---|
persistenceContext | Rid | — |
ulongIsPersistenceScopeSupportedbool
public bool IsPersistenceScopeSupported(OpenXRSpatialAnchorCapability.PersistenceScope scope);Возвращает true, если данная область сохранения поддерживается нашей возможностью пространственной привязки.
Примечание: Действительно только после создания экземпляра OpenXR.
| Имя | Тип | По умолчанию |
|---|---|---|
scope | OpenXRSpatialAnchorCapability.PersistenceScope | — |
boolIsSpatialAnchorSupportedbool
public bool IsSpatialAnchorSupported();Возвращает true, если аппаратное обеспечение поддерживает пространственные привязки. Возвращает допустимое значение только после инициализации OpenXR.
boolIsSpatialPersistenceSupportedbool
public bool IsSpatialPersistenceSupported();Возвращает true, если оборудование поддерживает постоянные пространственные привязки. Возвращает допустимое значение только после инициализации OpenXR.
boolPersistAnchorOpenXRFutureResult
public OpenXRFutureResult PersistAnchor(OpenXRAnchorTracker anchorTracker, Rid persistenceContext = default, Callable userCallback = default);Преобразует этот якорь в постоянный. Это означает, что его местоположение будет сохранено на устройстве, и якорь будет восстановлен при следующем запуске вашего приложения. Если persistence_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить ProjectSettings.xr/openxr/extensions/spatial_entity/enable_builtin_anchor_detection.
Примечание: Это асинхронный метод, который возвращает объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Значение результата этой функции — логическое значение, которое будет установлено в true после успешного завершения.
| Имя | Тип | По умолчанию |
|---|---|---|
anchorTracker | OpenXRAnchorTracker | — |
persistenceContext | Rid | default |
userCallback | Callable | default |
OpenXRFutureResultRemoveAnchorvoid
public void RemoveAnchor(OpenXRAnchorTracker anchorTracker);Удалите якорь, созданный ранее с помощью метода OpenXRSpatialAnchorCapability.CreateNewAnchor. Если этот якорь был постоянным, необходимо сначала вызвать метод OpenXRSpatialAnchorCapability.UnpersistAnchor и дождаться его обратного вызова.
| Имя | Тип | По умолчанию |
|---|---|---|
anchorTracker | OpenXRAnchorTracker | — |
StartEntityDiscoveryOpenXRFutureResult
public OpenXRFutureResult StartEntityDiscovery(Rid spatialContext, Reckfell.Collections.Array<OpenXRSpatialComponentData> componentData, OpenXRStructureBase nextSnapshotCreate = null, OpenXRStructureBase nextSnapshotQuery = null, Callable userCallback = default);Вызывает OpenXRSpatialEntityExtension.DiscoverSpatialEntities и OpenXRSpatialEntityExtension.QuerySnapshot с сущностями-якорями, связанными с spatial_context.
component_data — это OpenXRSpatialComponentData, которые необходимо обнаружить для этой возможности якоря.
Если next_snapshot_create не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.DiscoverSpatialEntities.
Если next_snapshot_query не равен null, передайте его параметру next в OpenXRSpatialEntityExtension.QuerySnapshot.
user_callback, если он не равен null, вызывается с двумя параметрами, обычно дважды. Первый параметр — это Rid снимка обнаружения, а второй параметр — логическое значение, где false указывает, что снимок обнаружения вот-вот будет обработан, а true указывает, что снимок обнаружения был обработан и component_data содержит допустимые данные. Второй вызов пропускается, если возникла ошибка.
Возвращаемый OpenXRFutureResult идентичен результату, возвращаемому методом OpenXRSpatialEntityExtension.DiscoverSpatialEntities.
| Имя | Тип | По умолчанию |
|---|---|---|
spatialContext | Rid | — |
componentData | Reckfell.Collections.Array<OpenXRSpatialComponentData> | — |
nextSnapshotCreate | OpenXRStructureBase | null |
nextSnapshotQuery | OpenXRStructureBase | null |
userCallback | Callable | default |
OpenXRFutureResultUnpersistAnchorOpenXRFutureResult
public OpenXRFutureResult UnpersistAnchor(OpenXRAnchorTracker anchorTracker, Rid persistenceContext = default, Callable userCallback = default);Удаляет постоянные данные из этого якоря. Среда выполнения не будет создавать якорь заново при перезапуске вашего приложения. Если persistence_context не указан, будет использоваться значение по умолчанию; для этого необходимо установить ProjectSettings.xr/openxr/extensions/spatial_entity/enabled.
Примечание: Это асинхронный метод, который возвращает объект OpenXRFutureResult, с помощью которого отслеживается статус; удаление этого объекта не отменит процесс создания. В случае успеха будет вызван user_callback, если он указан. Значение результата этой функции — логическое значение, которое будет установлено в true после успешного завершения.
| Имя | Тип | По умолчанию |
|---|---|---|
anchorTracker | OpenXRAnchorTracker | — |
persistenceContext | Rid | default |
userCallback | Callable | default |
OpenXRFutureResultOpenXRSpatialAnchorCapability.PersistenceScope
| Значение | Описание |
|---|---|
LocalAnchors = 1000781000 | Операции сохранения данных и доступ к ним ограничены пространственными привязками, на одном и том же устройстве, для одного и того же пользователя и одного и того же приложения (с использованием функций |
SystemManaged = 1 | Предоставляет приложению доступ только для чтения (т.е. приложение не может изменять эту область действия) к пространственным объектам, сохраняемым и управляемым системой. Приложение может использовать UUID в компоненте сохранения данных для этой области действия, чтобы сопоставлять объекты в разных пространственных контекстах и при перезагрузке устройства. |