Поддержка headset EasyAR в Unity
Этот документ представляет общую архитектуру и примечания по поддержке headset EasyAR в Unity.
Перед началом
- Прочитайте EasyAR headset support, чтобы узнать, какие типы headset уже поддерживаются EasyAR и какие функции EasyAR могут работать на headset.
Обзор поддержки headset
EasyAR поддерживает headset в Unity достаточно гибко. Обычно используются два подхода:
- Built-in support: обычно напрямую подключает device SDK в EasyAR Sense library и предоставляет соответствующие interfaces в Unity, например Apple Vision Pro
- Extension support: подключает device SDK через Unity headset extension package, например Pico
block
columns 4
block:groupApp:4
block:groupAppWrapper
space
App1["EasyAR + Device A<br>App"]
space
App2["EasyAR<br>App"]
space
App3["EasyAR + Device B<br>App"]
end
end
block:groupSensePluginExtension
columns 1
SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device 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["Device A<br>Unity SDK"]
space
end
block:groupSense
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
MDeviceB["Device B<br>CameraDevice"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:4
columns 1
System["Native Library"]
block:groupSystemWrapper
space
DeviceA["Device A<br> Library "]
space
space
DeviceB["Device B<br> Library "]
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
На рисунке:
Device A относится к extension support
На практике device A обычно имеет соответствующий Unity SDK для подключения к Unity XR SDK или самостоятельной реализации возможностей headset rendering.
Headset extension package для device A отвечает за соединение EasyAR Sense Unity Plugin с Unity SDK device A, тем самым обеспечивая работу EasyAR на device A. Этот support package может предоставляться EasyAR или device vendor.
Device B относится к built-in support
На практике device B может иметь или не иметь соответствующий Unity SDK, в зависимости от реализации device vendor. Например, Apple Vision Pro не имеет соответствующего Unity SDK, а XREAL имеет соответствующий Unity SDK.
Headsets с built-in support и extension support оба поддерживают использование custom camera.
Важно
При использовании пробных продуктов на пользовательской камере или гарнитуре (license Personal Edition, пробная XR license или пробная служба Mega и т. п.) EasyAR Sense перестает отвечать через 100 секунд после каждого запуска (пользователи Mega могут изменить длительность через EasyAR Business после утверждения). В платной версии EasyAR Sense и платной службе EasyAR Mega этого ограничения нет.
В Unity rendering virtual camera, projection matrix, transform и т. п. не контролируются EasyAR. Обычно они контролируются device SDK или Unity XR SDK. Собственные функции device, такие как gesture recognition и eye tracking, по-прежнему предоставляются device и device SDK. При использовании обычно нужно одновременно использовать EasyAR и device SDK.