Table of Contents

Supporto per headset EasyAR in unity

Questo documento descrive l'architettura generale e le considerazioni sul supporto per headset EasyAR in unity.

Prima di iniziare

  • Leggere Supporto per headset EasyAR per conoscere i tipi di headset supportati da EasyAR e le funzionalità EasyAR eseguibili su headset.

Panoramica del supporto per headset

EasyAR supporta gli headset in Unity in modo flessibile, principalmente attraverso due approcci:

  • Supporto integrato: tipicamente tramite integrazione diretta con l'SDK del dispositivo nella libreria EasyAR Sense, fornendo interfacce corrispondenti in Unity (ad esempio Apple Vision Pro)
  • Supporto esteso: tramite pacchetti di estensione headset Unity per interfacciarsi con l'SDK del dispositivo (ad esempio Pico)
block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Dispositivo A<br>App"]
      space
      App2["EasyAR<br>App"]
      space
      App3["EasyAR + Dispositivo B<br>App"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Estensione per dispositivo 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["Dispositivo A<br>Unity SDK"]
    space
  end
  block:groupSense
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      MDeviceB["Dispositivo 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["Dispositivo 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["Dispositivo 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

Nel diagramma:

  • Il dispositivo A appartiene al supporto esteso

    Nella pratica, il dispositivo A solitamente dispone di un SDK Unity corrispondente, utilizzato per interfacciarsi con Unity XR SDK o implementare autonomamente le funzionalità di rendering dell'headset.

    Il pacchetto di estensione headset per il dispositivo A si occupa di collegare EasyAR Sense Unity Plugin con l'SDK Unity del dispositivo A, consentendo così l'esecuzione di EasyAR sul dispositivo A. Questo pacchetto di supporto può essere fornito da EasyAR o dal produttore del dispositivo.

  • Il dispositivo B appartiene al supporto integrato

    Nella pratica, il dispositivo B potrebbe disporre o meno di un SDK Unity corrispondente, a seconda dell'implementazione del produttore. Ad esempio, Apple Vision Pro non ha un SDK Unity corrispondente, mentre XREAL ne ha uno.

Sia gli headset con supporto integrato che esteso sono compatibili con l'utilizzo di fotocamera personalizzata.

Importante

Quando si utilizzano prodotti in prova (come licenze personali, licenze XR di prova o servizi Mega di prova) su fotocamere personalizzate o dispositivi di visualizzazione, EasyAR Sense smetterà di rispondere dopo 100 secondi dall'avvio (gli utenti Mega possono richiedere a EasyAR Business di modificare questa durata previa approvazione). L'utilizzo della versione a pagamento di EasyAR Sense e del servizio EasyAR Mega a pagamento non presenta questa limitazione.

In Unity, il rendering della fotocamera virtuale, la matrice di proiezione e le trasformazioni (transform) non sono controllate da EasyAR. Questi elementi sono generalmente gestiti dall'SDK del dispositivo o da Unity XR SDK. Le funzionalità native del dispositivo, come il rilevamento dei gesti o l'eye tracking, rimangono fornite dal dispositivo e dal suo SDK. Durante l'utilizzo, è solitamente necessario impiegare sia EasyAR che l'SDK del dispositivo contemporaneamente.

Prossimi passi