Table of Contents

EasyAR-headset-Unterstützung in Unity

Dieses Dokument stellt die Gesamtarchitektur und Hinweise zur EasyAR-headset-Unterstützung in Unity vor.

Bevor Sie beginnen

  • Lesen Sie EasyAR headset support, um zu erfahren, welche headset-Typen EasyAR bereits unterstützt und welche EasyAR-Funktionen auf headsets ausgeführt werden können.

Überblick über headset-Unterstützung

EasyAR unterstützt headsets in Unity auf flexible Weise. Es gibt zwei gängige Ansätze:

  • Built-in support: Verbindet normalerweise direkt mit dem device SDK in der EasyAR Sense library und stellt entsprechende interfaces in Unity bereit, z. B. Apple Vision Pro
  • Extension support: Verbindet mit dem device SDK über ein Unity headset extension package, z. B. 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

In der Abbildung:

  • Device A gehört zu extension support

    In der Praxis verfügt device A normalerweise über ein entsprechendes Unity SDK, um Unity XR SDK anzubinden oder headset rendering capabilities eigenständig zu implementieren.

    Das headset extension package von device A ist dafür verantwortlich, EasyAR Sense Unity Plugin mit dem Unity SDK von device A zu verbinden, sodass EasyAR auf device A ausgeführt werden kann. Dieses support package kann von EasyAR oder vom device vendor bereitgestellt werden.

  • Device B gehört zu built-in support

    In der Praxis kann device B je nach Implementierung des device vendor ein entsprechendes Unity SDK haben oder auch nicht. Apple Vision Pro hat beispielsweise kein entsprechendes Unity SDK, XREAL hingegen hat ein entsprechendes Unity SDK.

Headsets mit built-in support und extension support unterstützen beide die Verwendung von custom camera.

Wichtig

Bei der Verwendung von Testprodukten auf einer benutzerdefinierten Kamera oder einem Headset (Personal Edition license, Test-XR license oder Test-Mega-Dienst usw.) reagiert EasyAR Sense 100 Sekunden nach jedem Start nicht mehr (Mega-Benutzer können die Dauer nach Genehmigung über EasyAR Business anpassen lassen). Diese Einschränkung gilt nicht für kostenpflichtige Versionen von EasyAR Sense und kostenpflichtige EasyAR Mega-Dienste.

In Unity werden rendering der virtual camera, projection matrix, transform usw. nicht von EasyAR gesteuert. Sie werden normalerweise vom device SDK oder Unity XR SDK gesteuert. Geräteeigene Funktionen wie gesture recognition und eye tracking werden weiterhin vom device und device SDK bereitgestellt. Bei der Verwendung müssen Sie normalerweise EasyAR und das device SDK gleichzeitig verwenden.

Nächste Schritte