Table of Contents

Suporte a EasyAR headset no Unity

Este documento apresenta a arquitetura geral e observações sobre o suporte a EasyAR headset no Unity.

Antes de começar

  • Leia EasyAR headset support para conhecer os tipos de headset já compatíveis com EasyAR e os recursos EasyAR que podem ser executados em headsets.

Visão geral do suporte a headset

EasyAR oferece suporte a headsets no Unity de forma flexível. Há duas abordagens comuns:

  • Built-in support: normalmente conecta diretamente ao device SDK na EasyAR Sense library e fornece as interfaces correspondentes no Unity, como Apple Vision Pro
  • Extension support: conecta ao device SDK por meio de um 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

Na figura:

  • Device A pertence a extension support

    Na prática, device A geralmente tem um Unity SDK correspondente para conectar ao Unity XR SDK ou implementar independentemente capacidades de headset rendering.

    O headset extension package do device A é responsável por conectar EasyAR Sense Unity Plugin ao Unity SDK do device A, permitindo assim que EasyAR seja executado no device A. Esse support package pode ser fornecido pela EasyAR ou pelo device vendor.

  • Device B pertence a built-in support

    Na prática, device B pode ou não ter um Unity SDK correspondente, dependendo da implementação do device vendor. Por exemplo, Apple Vision Pro não tem um Unity SDK correspondente, enquanto XREAL tem um Unity SDK correspondente.

Headsets com built-in support e extension support oferecem suporte ao uso de custom camera.

Importante

Ao usar produtos de avaliação em uma câmera personalizada ou headset (license Personal Edition, license XR de avaliação ou serviço Mega de avaliação etc.), o EasyAR Sense deixará de responder 100 segundos após cada inicialização (usuários Mega podem ajustar a duração por meio do EasyAR Business após aprovação). As versões pagas do EasyAR Sense e os serviços pagos do EasyAR Mega não têm essa limitação.

No Unity, rendering da virtual camera, projection matrix, transform etc. não são controlados pela EasyAR. Eles geralmente são controlados pelo device SDK ou Unity XR SDK. Funções próprias do device, como gesture recognition e eye tracking, ainda são fornecidas pelo device e device SDK. Ao usar, normalmente é necessário usar EasyAR e device SDK ao mesmo tempo.

Próximas etapas