EasyAR-headset-Unterstützung in Unity
Dieses Dokument stellt die Gesamtarchitektur und Hinweise zur EasyAR-headset-Unterstützung in Unity vor.
Bevor Sie beginnen
- Lesen Sie EasyAR headset support, um zu erfahren, welche headset-Typen EasyAR bereits unterstützt und welche EasyAR-Funktionen auf headsets ausgeführt werden können.
Überblick über headset-Unterstützung
EasyAR unterstützt headsets in Unity auf flexible Weise. Es gibt zwei gängige Ansätze:
- Built-in support: Verbindet normalerweise direkt mit dem device SDK in der EasyAR Sense library und stellt entsprechende interfaces in Unity bereit, z. B. Apple Vision Pro
- Extension support: Verbindet mit dem device SDK über ein Unity headset extension package, z. B. 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
In der Abbildung:
Device A gehört zu extension support
In der Praxis verfügt device A normalerweise über ein entsprechendes Unity SDK, um Unity XR SDK anzubinden oder headset rendering capabilities eigenständig zu implementieren.
Das headset extension package von device A ist dafür verantwortlich, EasyAR Sense Unity Plugin mit dem Unity SDK von device A zu verbinden, sodass EasyAR auf device A ausgeführt werden kann. Dieses support package kann von EasyAR oder vom device vendor bereitgestellt werden.
Device B gehört zu built-in support
In der Praxis kann device B je nach Implementierung des device vendor ein entsprechendes Unity SDK haben oder auch nicht. Apple Vision Pro hat beispielsweise kein entsprechendes Unity SDK, XREAL hingegen hat ein entsprechendes Unity SDK.
Headsets mit built-in support und extension support unterstützen beide die Verwendung von custom camera.
Wichtig
Bei der Verwendung von Testprodukten auf einer benutzerdefinierten Kamera oder einem Headset (Personal Edition license, Test-XR license oder Test-Mega-Dienst usw.) reagiert EasyAR Sense 100 Sekunden nach jedem Start nicht mehr (Mega-Benutzer können die Dauer nach Genehmigung über EasyAR Business anpassen lassen). Diese Einschränkung gilt nicht für kostenpflichtige Versionen von EasyAR Sense und kostenpflichtige EasyAR Mega-Dienste.
In Unity werden rendering der virtual camera, projection matrix, transform usw. nicht von EasyAR gesteuert. Sie werden normalerweise vom device SDK oder Unity XR SDK gesteuert. Geräteeigene Funktionen wie gesture recognition und eye tracking werden weiterhin vom device und device SDK bereitgestellt. Bei der Verwendung müssen Sie normalerweise EasyAR und das device SDK gleichzeitig verwenden.