Поддержка гарнитур в unity с easyar
В этом документе описывается общая архитектура и важные аспекты поддержки гарнитур в Unity с EasyAR.
Перед началом
- Ознакомьтесь с разделом Поддержка гарнитур в EasyAR, чтобы узнать о типах гарнитур, которые поддерживает EasyAR, и функциях EasyAR, которые могут работать на гарнитурах.
Обзор поддержки гарнитур
EasyAR поддерживает гарнитуры в Unity гибким способом, обычно двумя способами:
- Встроенная поддержка: обычно прямое взаимодействие с SDK устройства в библиотеке EasyAR Sense с предоставлением соответствующих интерфейсов в Unity (например, Apple Vision Pro)
- Расширенная поддержка: через пакет расширений гарнитур Unity для взаимодействия с SDK устройства (например, Pico)
block
columns 4
block:groupApp:4
block:groupAppWrapper
space
App1["EasyAR + Устройство A<br>Приложение"]
space
App2["EasyAR<br>Приложение"]
space
App3["EasyAR + Устройство B<br>Приложение"]
end
end
block:groupSensePluginExtension
columns 1
SensePluginExtension["EasyAR Sense Unity Plugin<br>Расширение для Устройства A"]
space
end
block:groupSensePlugin
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupDeviceAUnity
columns 1
DeviceAUnity["Устройство A<br>Unity SDK"]
space
end
block:groupSense
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
MDeviceB["Устройство B<br>CameraDevice"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR подсистемы"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:4
columns 1
System["Нативная библиотека"]
block:groupSystemWrapper
space
DeviceA["Устройство A<br> Библиотека "]
space
space
DeviceB["Устройство B<br> Библиотека "]
space
end
end
SensePluginExtension --> App1
SensePlugin --> App1
SensePlugin --> App2
SensePlugin --> App3
ARF --> App3
XRI --> App1
XRI --> App3
groupSense --> SensePlugin
groupDeviceAUnity --> SensePluginExtension
SensePlugin --> SensePluginExtension
DeviceA --> groupDeviceAUnity
DeviceA --> XRSDK
XRSubsystem --> ARF
XRSubsystem --> XRI
DeviceB --> MDeviceB
DeviceB --> XRSDK
style groupApp fill:none,stroke:none,stroke-width:0px
style groupAppWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePlugin fill:none,stroke:none,stroke-width:0px
style groupARF fill:none,stroke:none,stroke-width:0px
style groupXRI fill:none,stroke:none,stroke-width:0px
style DeviceAUnity fill:none,stroke:none,stroke-width:0px,color:#fff
style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px,color
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class groupSense EasyAR
class SensePlugin EasyAR
class SensePluginExtension EasyAR
classDef Device fill:#636,stroke:#333,color:#fff
class groupDeviceAUnity Device
class DeviceB Device
class DeviceA Device
На схеме:
Устройство A относится к расширенной поддержке
На практике устройство A обычно имеет соответствующий Unity SDK для интеграции с Unity XR SDK или самостоятельной реализации возможностей рендеринга гарнитуры.
Пакет расширений гарнитуры для устройства A отвечает за соединение EasyAR Sense Unity Plugin и Unity SDK устройства A, обеспечивая работу EasyAR на устройстве A. Этот пакет поддержки может предоставляться EasyAR или производителем устройства.
Устройство B относится к встроенной поддержке
На практике устройство B может иметь или не иметь соответствующий Unity SDK, в зависимости от реализации производителя устройства. Например, у Apple Vision Pro нет соответствующего Unity SDK, а у XREAL он есть.
Гарнитуры со встроенной и расширенной поддержкой работают с использованием пользовательской камеры.
Важно
При использовании пробных продуктов (например, лицензии Personal, пробной лицензии XR или пробного сервиса Mega) на пользовательских камерах или гарнитурах, EasyAR Sense перестает отвечать через 100 секунд после каждого запуска (пользователи Mega могут запросить изменение этого времени через EasyAR Business после утверждения). Использование платной версии EasyAR Sense и платного сервиса EasyAR Mega не имеет этого ограничения.
В Unity рендеринг виртуальной камеры, матрица проекции и transform не контролируются EasyAR, они обычно управляются SDK устройства или Unity XR SDK. Собственные функции устройства, такие как распознавание жестов, отслеживание взгляда и т.д., по-прежнему предоставляются самим устройством и его SDK. При использовании обычно требуется одновременное применение EasyAR и SDK устройства.