Table of Contents

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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&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;Library&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 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.

Pasos siguientes