Table of Contents

EasyAR-Unterstützung für das Unity XR-Framework

EasyAR ist nicht vom Unity XR-Framework abhängig, um AR-Funktionen bereitzustellen, kann aber einige Komponentenpakete im Unity XR-Framework unterstützen, damit Sie beim Verwenden der AR-Funktionen von EasyAR in Unity die vom Unity XR-Framework bereitgestellten Funktionen nutzen können. Der folgende Inhalt beschreibt die Unterstützung von EasyAR für das Unity XR-Framework und wann AR Foundation in Betracht gezogen werden kann.

Unity XR-Unterstützung

Unity unterstützt XR-Entwicklung über sein Plugin-Framework sowie eine Reihe von Feature-Paketen und Toolkits. EasyAR unterstützt ebenfalls diese Unity XR-Komponentenpakete, damit Sie beim Verwenden der AR-Funktionen von EasyAR in Unity die Funktionen des Unity XR-Frameworks nutzen können.

EasyAR unterstützt die folgenden Unity XR-Komponentenpakete:

Anzeigename Paketname Minimal unterstützte Version Erforderlich Zweck
XR Core Utilities com.unity.xr.core-utils 2.0.0 Nein Stellt Unterstützung für Unity.XR.CoreUtils.XROrigin bereit
AR Foundation com.unity.xr.arfoundation 5.0.0 Nein Stellt AR Foundation-Unterstützung bereit
XR Plugin Management com.unity.xr.management 3.0.0 Nein Stellt Kompatibilität für ARCore SDK-Verwaltung bereit und ermittelt den XR Loader-Typ zur Laufzeit
XR Interaction Toolkit com.unity.xr.interaction.toolkit 2.0.0 Nein Nicht direkt verwendet
PolySpatial visionOS com.unity.polyspatial.visionos 2.0.41 Nein Nicht direkt verwendet
Apple visionOS XR Plugin com.unity.xr.visionos 2.0.41 Nein Nicht direkt verwendet
Apple ARKit XR Plugin com.unity.xr.arkit 5.0.0 Nein Nicht direkt verwendet
Google ARCore XR Plugin com.unity.xr.arcore 5.0.0 Nein Stellt Kompatibilität für ARCore SDK-Verwaltung bereit
Anmerkung

EasyAR ist nicht vom Unity XR-Framework abhängig, um AR-Funktionen bereitzustellen. Wenn daher keine Unity XR-Komponenten wie AR Foundation benötigt werden, müssen diese Pakete nicht installiert werden; EasyAR kann auf unterstützten Geräten weiterhin normal funktionieren.

AR Foundation-Unterstützung

AR Foundation ist das von Unity bereitgestellte AR-Entwicklungsframework. Seine AR-Funktionen werden über das zugrunde liegende System oder Drittanbieter realisiert und häufig zur Unterstützung von ARCore, ARKit und einigen Headsets verwendet.

Beziehung zwischen EasyAR und AR Foundation

block
  columns 6
  block:groupApp:6
    block:groupAppWrapper
      space
      App1["EasyAR<br>App"]
      space
      App2["EasyAR + AR Foundation<br>App"]
      space
      App3["AR Foundation<br>App"]
    end
  end
  
  block:groupSensePlugin:4
    columns 1
    SensePlugin["EasyAR Sense Unity Plugin"]
    space
  end
  block:groupARF
    columns 1
    ARF["AR Foundation"]
    space
  end
  block:groupXRI
    columns 1
    XRI["XR Interaction Toolkit"]
    space
  end
  
  block:groupAREngineInterop
    columns 1
    AREngineInterop["EasyAR<br>AR Engine Interop"]
    space
  end  
  block:groupSense:3
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      Image["Image<br>Tracker"]
      Object["Sparse<br>SpatialMap"]
      MotionTracker["Motion<br>Tracker"]
      MARCore["ARCore"]
      MARKit["ARKit"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["XR Subsystems"]
    XRSDK["Unity XR SDK"]
  end

  block:groupSystem:6
    columns 1
    System["System Library"]
    block:groupSystemWrapper
      space
      AREngine["AR Engine<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      ARCore["ARCore<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      ARKit["ARKit<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
  
  SensePlugin --> App1
  SensePlugin --> App2
  ARF --> App2
  ARF --> App3
  groupSense --> SensePlugin
  groupAREngineInterop --> SensePlugin
  AREngine --> groupAREngineInterop
  XRSubsystem --> ARF
  XRSubsystem --> XRI
  ARCore --> MARCore
  ARKit --> MARKit
  ARCore --> XRSDK
  ARKit --> 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 AREngineInterop 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:#fff
  style System fill:none,stroke:none,stroke-width:0px
  style groupSystemWrapper fill:none,stroke:none,stroke-width:0px

  classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
  class groupAREngineInterop EasyAR
  class groupSense EasyAR
  class SensePlugin EasyAR

  classDef Unity fill:#636,stroke:#333,color:#fff
  class groupXRSubsystem Unity
  class ARF Unity
  class XRI Unity

EasyAR und AR Foundation sind zwei unabhängige AR-Frameworks. EasyAR ist nicht von AR Foundation abhängig, um seine AR-Funktionen zu implementieren. EasyAR kann motion tracking auch über Systembibliotheken wie ARKit und ARCore im System implementieren. Gleichzeitig bietet EasyAR zwei motion tracking-Implementierungen, die AR Foundation nicht besitzt: EasyARs eigene motion tracking-Implementierung und die über AR Engine bereitgestellte motion tracking-Implementierung. Dadurch wird im Vergleich zu AR Foundation eine breitere Geräteunterstützung geboten.

Gleichzeitig kann EasyAR runtime-Daten von AR Foundation abrufen und die von AR Foundation runtime bereitgestellte motion tracking-Fähigkeit nutzen, um andere AR-Funktionen auszuführen, wodurch Kompatibilität mit AR Foundation bereitgestellt wird. Dazu gehören:

  • Mega
  • Sparse spatial map
  • Dense spatial map
  • Image tracking und object tracking mit motion fusion

Siehe motion tracking und EasyAR-Funktionen, um die Beziehung zwischen motion tracking und EasyAR-Funktionen genauer zu verstehen.

Wann AR Foundation verwendet werden sollte

In den meisten Fällen kann AR Foundation weggelassen werden; EasyAR funktioniert auf einem breiteren Gerätespektrum normal als AR Foundation unterstützt. In der Regel kann AR Foundation in den folgenden zwei Fällen erwogen werden:

  1. Es werden ARKit- oder ARCore-Funktionen benötigt, die EasyAR nicht gekapselt hat

    Wenn einige benötigte ARCore- oder ARKit-Funktionen in EasyAR nicht gekapselt sind, können Sie AR Foundation verwenden. Zum Beispiel bietet AR Foundation Unterstützung für ARKit face tracking über ARFaceManager, während EasyAR diese Funktion nicht kapselt.

  2. ARCore statt EasyARs motion tracking auf einigen Xiaomi-Telefonen mit Systemproblemen verwenden

    Wenn Sie ARCore auf allen Xiaomi- und Redmi-Telefonen verwenden müssen, die ARCore unterstützen, können Sie AR Foundation aktivieren. Aufgrund von Systemproblemen auf einigen Xiaomi- und Redmi-Telefonen unterstützt EasyARs ARCore-Kapselung diese Geräte nicht, darunter Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40 und weitere Serien (die Liste ist nicht vollständig; die Geräteunterstützung wird weiter aktualisiert). Auf diesen Telefonen wird ARCore in der Standardkonfiguration nicht verwendet; auf Telefonen, die EasyAR motion tracking unterstützen, wird EasyAR motion tracking verwendet.

Bei Verwendung von AR Foundation sind die Effekte der EasyAR-Funktionen nicht optimal. Es gibt zwei Fälle:

  1. Auf den Xiaomi- und Redmi-Telefonen, die EasyAR nicht direkt unterstützt, sind die Eingabedaten für EasyAR Graustufenbilder statt Farbbildern; dies beeinflusst einige Algorithmen. Wegen geräteeigener Probleme kann dies nicht durch Konfiguration gelöst werden.
  2. Bei Verwendung von Mega ist die von AR Foundation standardmäßig verwendete Konfiguration nicht optimal.
Vorsicht

Durch Ändern von ARCameraManager.currentConfiguration in AR Foundation können bessere Eingabedaten erhalten werden. Das Aktivieren von ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking kann automatisch die beste ARCameraManager.currentConfiguration auswählen. Beachten Sie jedoch, dass einige Telefone selbst Probleme haben (zum Beispiel Mi 10): Nach dem Ändern der Konfiguration kann kein Bild abgerufen werden, und EasyAR kann nicht verwendet werden (die App hat einen Bildhintergrund, aber EasyAR-Funktionen reagieren nicht). Daher wird das Aktivieren normalerweise nicht empfohlen; falls es nötig ist, bereiten Sie eine Fallback-Lösung vor, wenn EasyAR nicht verwendet werden kann.

Headset-Unterstützung

Da das Unity XR-Framework keine ausreichend vollständigen Datenschnittstellen bereitstellt, unterstützt EasyAR Headsets nicht über das Unity XR-Framework.

Auf Headsets, die das Unity XR-Framework unterstützen, unterstützt EasyAR die Verwendung von Unity.XR.CoreUtils.XROrigin über XR Core Utilities, nutzt aber das Unity XR-Framework nicht zur Implementierung der Headset-Unterstützung. EasyAR beeinflusst die Funktionen des XR Interaction Toolkit nicht; sofern das Gerät es unterstützt, kann es normal verwendet werden.

Im Allgemeinen stellen Headset-Hersteller jeweils SDKs oder Systemschnittstellen bereit, um diese Daten bereitzustellen. EasyAR unterstützt Headsets über Systemschnittstellen und Hersteller-SDKs. Manchmal sind diese SDKs nicht vollständig öffentlich; EasyAR arbeitet dann mit Herstellern zusammen, um vollständige Unterstützung bereitzustellen. Headset-Unterstützung in Unity stellt die von EasyAR unterstützten Headsets und deren Verwendung vor.

Nächste Schritte

Verwandte Themen


  1. In Unity 6 und neueren Versionen ist die minimal unterstützte Version 2.0.4. In Unity 2022.3 ist die minimal unterstützte Version 1.2.3; 1.3.x wird nicht unterstützt.