Suporte a EasyAR headset no Unity
Este documento apresenta a arquitetura geral e observações sobre o suporte a EasyAR headset no Unity.
Antes de começar
- Leia EasyAR headset support para conhecer os tipos de headset já compatíveis com EasyAR e os recursos EasyAR que podem ser executados em headsets.
Visão geral do suporte a headset
EasyAR oferece suporte a headsets no Unity de forma flexível. Há duas abordagens comuns:
- Built-in support: normalmente conecta diretamente ao device SDK na EasyAR Sense library e fornece as interfaces correspondentes no Unity, como Apple Vision Pro
- Extension support: conecta ao device SDK por meio de um Unity headset extension package, como 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
Na figura:
Device A pertence a extension support
Na prática, device A geralmente tem um Unity SDK correspondente para conectar ao Unity XR SDK ou implementar independentemente capacidades de headset rendering.
O headset extension package do device A é responsável por conectar EasyAR Sense Unity Plugin ao Unity SDK do device A, permitindo assim que EasyAR seja executado no device A. Esse support package pode ser fornecido pela EasyAR ou pelo device vendor.
Device B pertence a built-in support
Na prática, device B pode ou não ter um Unity SDK correspondente, dependendo da implementação do device vendor. Por exemplo, Apple Vision Pro não tem um Unity SDK correspondente, enquanto XREAL tem um Unity SDK correspondente.
Headsets com built-in support e extension support oferecem suporte ao uso de custom camera.
Importante
Ao usar produtos de avaliação em uma câmera personalizada ou headset (license Personal Edition, license XR de avaliação ou serviço Mega de avaliação etc.), o EasyAR Sense deixará de responder 100 segundos após cada inicialização (usuários Mega podem ajustar a duração por meio do EasyAR Business após aprovação). As versões pagas do EasyAR Sense e os serviços pagos do EasyAR Mega não têm essa limitação.
No Unity, rendering da virtual camera, projection matrix, transform etc. não são controlados pela EasyAR. Eles geralmente são controlados pelo device SDK ou Unity XR SDK. Funções próprias do device, como gesture recognition e eye tracking, ainda são fornecidas pelo device e device SDK. Ao usar, normalmente é necessário usar EasyAR e device SDK ao mesmo tempo.