Prise en charge EasyAR headset dans Unity
Ce document présente l'architecture globale et les notes relatives à la prise en charge EasyAR headset dans Unity.
Avant de commencer
- Lisez EasyAR headset support pour connaître les types de headset déjà pris en charge par EasyAR et les fonctionnalités EasyAR pouvant s'exécuter sur headsets.
Présentation de la prise en charge headset
EasyAR prend en charge headsets dans Unity de manière flexible. Deux approches sont courantes :
- Built-in support : se connecte généralement directement au device SDK dans EasyAR Sense library et fournit les interfaces correspondantes dans Unity, par exemple Apple Vision Pro
- Extension support : se connecte au device SDK via un Unity headset extension package, par exemple 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
Dans la figure :
Device A appartient à extension support
En pratique, device A dispose généralement d'un Unity SDK correspondant pour se connecter à Unity XR SDK ou implémenter indépendamment des capacités de headset rendering.
Le headset extension package de device A est chargé de connecter EasyAR Sense Unity Plugin avec le Unity SDK de device A, permettant ainsi à EasyAR de fonctionner sur device A. Ce support package peut être fourni par EasyAR ou par le device vendor.
Device B appartient à built-in support
En pratique, device B peut ou non disposer d'un Unity SDK correspondant, selon l'implémentation du device vendor. Par exemple, Apple Vision Pro n'a pas de Unity SDK correspondant, tandis que XREAL en a un.
Les headsets avec built-in support et extension support prennent tous deux en charge l'utilisation de custom camera.
Important
Lors de l'utilisation de produits d'essai sur une caméra personnalisée ou un casque (license Personal Edition, license XR d'essai ou service Mega d'essai, etc.), EasyAR Sense cesse de répondre 100 secondes après chaque démarrage (les utilisateurs Mega peuvent ajuster cette durée via EasyAR Business après approbation). Les versions payantes d'EasyAR Sense et les services payants EasyAR Mega ne sont pas soumis à cette limitation.
Dans Unity, le rendering de virtual camera, projection matrix, transform, etc. ne sont pas contrôlés par EasyAR. Ils sont généralement contrôlés par le device SDK ou Unity XR SDK. Les fonctions propres au device, comme gesture recognition et eye tracking, sont toujours fournies par le device et le device SDK. Lors de leur utilisation, il est généralement nécessaire d'utiliser EasyAR et le device SDK en même temps.