Table of Contents

Soporte para auriculares en Unity

Este documento describe la arquitectura general y las consideraciones para el soporte de auriculares EasyAR en Unity.

Antes de comenzar

  • Lee Soporte para auriculares EasyAR para conocer los tipos de auriculares compatibles con EasyAR y las funciones de EasyAR que pueden ejecutarse en ellos.

Resumen del soporte para auriculares

EasyAR admite auriculares en Unity de manera flexible, comúnmente de dos formas:

  • Soporte integrado: normalmente se integra directamente con el SDK del dispositivo en la biblioteca EasyAR Sense y proporciona interfaces correspondientes en Unity (como Apple Vision Pro)
  • Soporte extendido: mediante paquetes de extensión de auriculares de Unity que se conectan al SDK del dispositivo (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["Biblioteca nativa"]
    block:groupSystemWrapper
      space
      DeviceA["Device A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Biblioteca&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Device B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Biblioteca&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      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 el diagrama:

  • El dispositivo A pertenece al soporte extendido

    En la práctica, el dispositivo A suele tener un SDK de Unity correspondiente, utilizado para integrarse con el XR SDK de Unity o implementar de forma independiente las capacidades de renderizado del auricular.

    El paquete de extensión para auriculares del dispositivo A es responsable de conectar el EasyAR Sense Unity Plugin con el SDK de Unity del dispositivo A, permitiendo así que EasyAR se ejecute en el dispositivo A. Este paquete de soporte puede ser proporcionado por EasyAR o por el fabricante del dispositivo.

  • El dispositivo B pertenece al soporte integrado

    En la práctica, el dispositivo B puede tener o no un SDK de Unity correspondiente, dependiendo de la implementación del fabricante. Por ejemplo, Apple Vision Pro no tiene un SDK de Unity, mientras que XREAL sí lo tiene.

Tanto los auriculares con soporte integrado como extendido admiten el uso de cámara personalizada.

Importante

Al usar productos de prueba (licencia personal, licencia XR de prueba o servicio Mega de prueba, etc.) en cámaras personalizadas o dispositivos de visualización, EasyAR Sense dejará de responder después de 100 segundos (los usuarios de Mega pueden ajustar la duración después de la aprobación a través del equipo comercial de EasyAR) cada vez que se inicie. No existe esta limitación al usar versiones pagadas de EasyAR Sense y el servicio EasyAR Mega pagado.

En Unity, el renderizado de la cámara virtual, la matriz de proyección y el transform no están controlados por EasyAR; normalmente los controla el SDK del dispositivo o el XR SDK de Unity. Las funciones propias del dispositivo, como el reconocimiento de gestos o el seguimiento ocular, siguen siendo proporcionadas por el dispositivo y su SDK. Durante el uso, generalmente se requiere emplear tanto EasyAR como el SDK del dispositivo.

Pasos siguientes