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> Library "]
space
ARCore["ARCore<br> Library "]
space
ARKit["ARKit<br> Library "]
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:
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.
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:
- 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.
- 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
- Erfahren Sie, wie Sie AR Foundation in einem EasyAR-Projekt aktivieren
- Lernen Sie AR Foundation-Szenenkonfiguration und Verwendung in EasyAR-Projekten kennen
- Erfahren Sie, wie Sie je nach Geräteunterstützung AR Foundation automatisch umschalten