EasyAR unterstützung für das Unity XR framework
EasyAR ist nicht auf das Unity XR framework angewiesen, um AR-Funktionen bereitzustellen, kann jedoch einige Komponentenpakete des Unity XR frameworks unterstützen, um die Nutzung von EasyARs AR-Funktionen in Unity mit den Funktionen des Unity XR frameworks zu kombinieren. Der folgende Inhalt beschreibt die Unterstützung von EasyAR für das Unity XR framework und wann die Verwendung von AR Foundation in Betracht gezogen werden kann.
Unity XR unterstützung
Unity unterstützt die XR-Entwicklung über sein Plugin-Framework und eine Reihe von Funktionspaketen und Toolkits. EasyAR unterstützt ebenfalls diese Unity XR-Komponentenpakete, um die Nutzung von EasyARs AR-Funktionen in Unity mit den Funktionen des Unity XR frameworks zu kombinieren.
EasyAR unterstützt die folgenden Unity XR-Komponentenpakete:
| Anzeigename | Paketname | Mindestversion | Erforderlich | Verwendung |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | Nein | Bietet Unterstützung für Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | Nein | Bietet AR Foundation-Unterstützung |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | Nein | Bietet ARCore SDK-Management-Kompatibilität und Abruf des Laufzeit-XR-Loader-Typs |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | Nein | Wird nicht direkt verwendet |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | Nein | Wird nicht direkt verwendet |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | Nein | Wird nicht direkt verwendet |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | Nein | Wird nicht direkt verwendet |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | Nein | Bietet ARCore SDK-Management-Kompatibilität |
Anmerkung
EasyAR ist nicht auf das Unity XR framework angewiesen, um AR-Funktionen bereitzustellen. Daher können diese Komponentenpakete nicht installiert werden, wenn keine Verwendungsanforderung für Unity XR-Komponenten wie AR Foundation besteht. EasyAR funktioniert weiterhin auf unterstützten Geräten.
AR Foundation unterstützung
AR Foundation ist das von Unity bereitgestellte AR-Entwicklungsframework, dessen AR-Funktionen über das zugrunde liegende System oder Drittanbieter implementiert werden. Es wird 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["Bild-<br>Tracker"]
Object["Sparse<br>SpatialMap"]
MotionTracker["Bewegungs-<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["Systembibliothek"]
block:groupSystemWrapper
space
AREngine["AR Engine<br> Bibliothek "]
space
ARCore["ARCore<br> Bibliothek "]
space
ARKit["ARKit<br> Bibliothek "]
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 auf AR Foundation angewiesen, um seine AR-Funktionen zu implementieren. EasyAR kann auch die Bewegungsverfolgungsfähigkeit über Systembibliotheken wie ARKit oder ARCore implementieren. Darüber hinaus bietet EasyAR zwei Bewegungsverfolgungsimplementierungen, die AR Foundation nicht bietet: EasyARs eigene Bewegungsverfolgungsimplementierung und die über AR Engine bereitgestellte Bewegungsverfolgung. Dadurch bietet EasyAR eine breitere Geräteunterstützung als AR Foundation.
Gleichzeitig kann EasyAR Daten der AR Foundation-Laufzeit abrufen und während ihrer Laufzeit die von ihr bereitgestellte Bewegungsverfolgungsfähigkeit nutzen, um andere AR-Funktionen anzutreiben, und so Kompatibilität mit AR Foundation bieten. Diese Funktionen umfassen:
- Mega
- Sparse Raumkarte
- Dichte Raumkarte
- Bildverfolgung und Objektverfolgung mit Bewegungsfusion
Weitere Informationen zur Beziehung zwischen Bewegungsverfolgung und EasyAR-Funktionen finden Sie unter Bewegungsverfolgung und EasyAR-Funktionen.
Wann AR Foundation verwendet werden sollte
In den meisten Fällen kann auf AR Foundation verzichtet werden, da EasyAR auf einer breiteren Palette von Geräten funktioniert als AR Foundation. In der Regel kann AR Foundation in den folgenden zwei Situationen in Betracht gezogen werden:
Verwendung von ARKit- oder ARCore-Funktionen, die nicht von EasyAR gekapselt sind
Wenn Sie Funktionen verwenden müssen, die von ARCore oder ARKit bereitgestellt werden, aber nicht von EasyAR gekapselt sind, können Sie AR Foundation verwenden. Zum Beispiel bietet AR Foundation Unterstützung für die ARKit-Gesichtsverfolgung ARFaceManager, die EasyAR nicht kapselt.
Verwendung der ARCore-implementierten Bewegungsverfolgung auf einigen Xiaomi-Handys mit Systemproblemen
Wenn Sie ARCore auf allen unterstützten Xiaomi- und Redmi-Handys verwenden möchten, können Sie AR Foundation aktivieren. Aufgrund von Problemen mit dem System einiger Xiaomi- und Redmi-Handys unterstützt EasyARs ARCore-Kapselung diese Geräte nicht, darunter die Mi 9-, Mi 10-, Redmi K20-, Redmi K30-, Redmi K40-Serien (die Liste ist nicht vollständig, die Geräteunterstützung wird fortlaufend aktualisiert). Auf diesen Handys wird ARCore in der Standardkonfiguration nicht verwendet. Auf Handys, die die EasyAR-Bewegungsverfolgung unterstützen, wird stattdessen die EasyAR-Bewegungsverfolgung verwendet.
Die Funktionsleistung von EasyAR ist bei Verwendung von AR Foundation nicht optimal. Es gibt zwei Situationen:
- Auf den Xiaomi- und Redmi-Handys, die EasyAR nicht direkt unterstützt, sind die in EasyAR eingegebenen Daten Graustufenbilder und keine Farbbilder, was die Leistung einiger Algorithmen beeinträchtigt. Aufgrund von Problemen mit den Geräten selbst kann dies nicht durch Konfiguration gelöst werden.
- Bei der Verwendung von Mega ist die von AR Foundation standardmäßig verwendete Konfiguration nicht optimal.
Vorsicht
Es ist möglich, durch Ändern von ARCameraManager.currentConfiguration in AR Foundation einen besseren Dateneingang zu erhalten. Das Aktivieren von ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking kann automatisch die beste ARCameraManager.currentConfiguration auswählen. Beachten Sie jedoch, dass einige Handys selbst Probleme haben (z.B. Xiaomi 10) und nach der Konfigurationsänderung möglicherweise keine Bilder mehr erhalten werden können, wodurch EasyAR unbrauchbar wird (die App hat einen Bildhintergrund, aber EasyAR-Funktionen reagieren nicht). Daher wird die Aktivierung normalerweise nicht empfohlen. Wenn Sie es dennoch verwenden möchten, benötigen Sie einen Fallback-Plan für den Fall, dass EasyAR nicht funktioniert.
Headset-unterstützung
Da das Unity XR framework keine ausreichenden Datenschnittstellen bietet, 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, implementiert die Headset-Unterstützung jedoch nicht mit dem Unity XR framework. EasyAR beeinträchtigt die Funktionen des XR Interaction Toolkit nicht, solange das Gerät unterstützt wird, kann es normal verwendet werden.
Im Allgemeinen bieten Headset-Hersteller eigene SDKs oder Systemschnittstellen an, um diese Daten bereitzustellen. EasyAR unterstützt Headsets über Systemschnittstellen und Hersteller-SDKs. Manchmal sind diese SDKs nicht vollständig öffentlich, EasyAR arbeitet mit Herstellern zusammen, um vollständige Unterstützung zu bieten. Die Headset-Unterstützung in Unity beschreibt die von EasyAR unterstützten Headsets und deren Verwendung.
Nächste schritte
- Erfahren Sie, wie Sie AR Foundation in EasyAR-Projekten aktivieren
- Erfahren Sie über AR Foundation-Szenenkonfiguration und -Verwendung in EasyAR-Projekten
- Erfahren Sie, wie Sie basierend auf der Geräteunterstützung automatisch zu AR Foundation wechseln