Compatibilidad de headset EasyAR en Unity
Este documento presenta la arquitectura general y las notas de la compatibilidad de headset EasyAR en Unity.
Antes de empezar
- Lea EasyAR headset support para conocer los tipos de headset ya compatibles con EasyAR y las funciones de EasyAR que pueden ejecutarse en headsets.
Descripción general de compatibilidad de headset
EasyAR admite headsets en Unity de forma flexible. Hay dos enfoques comunes:
- Built-in support: normalmente conecta directamente con el device SDK en EasyAR Sense library y proporciona las interfaces correspondientes en Unity, como Apple Vision Pro
- Extension support: conecta con el device SDK mediante un 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
En la figura:
Device A pertenece a extension support
En la práctica, device A suele tener un Unity SDK correspondiente para conectarse a Unity XR SDK o implementar de forma independiente capacidades de headset rendering.
El headset extension package de device A se encarga de conectar EasyAR Sense Unity Plugin con el Unity SDK de device A, permitiendo así que EasyAR se ejecute en device A. Este support package puede ser proporcionado por EasyAR o por el device vendor.
Device B pertenece a built-in support
En la práctica, device B puede tener o no un Unity SDK correspondiente, según la implementación del device vendor. Por ejemplo, Apple Vision Pro no tiene un Unity SDK correspondiente, mientras que XREAL sí lo tiene.
Los headsets con built-in support y extension support admiten el uso de custom camera.
Importante
Al usar productos de prueba en una cámara personalizada o en un visor (license de edición personal, license XR de prueba o servicio Mega de prueba, etc.), EasyAR Sense dejará de responder 100 segundos después de cada inicio (los usuarios de Mega pueden ajustar la duración a través de EasyAR Business tras la aprobación). Las versiones de pago de EasyAR Sense y los servicios de pago de EasyAR Mega no tienen esta limitación.
En Unity, el rendering de virtual camera, projection matrix, transform, etc., no están controlados por EasyAR. Normalmente están controlados por el device SDK o Unity XR SDK. Las funciones propias del device, como gesture recognition y eye tracking, siguen siendo proporcionadas por el device y el device SDK. Al usarlas, normalmente debe usar EasyAR y el device SDK al mismo tiempo.