Prise en charge du framework Unity XR par EasyAR
EasyAR ne dépend pas du framework Unity XR pour fournir des fonctions AR, mais il peut prendre en charge certains packages de composants du framework Unity XR, afin que les fonctions offertes par Unity XR puissent être utilisées lorsque vous utilisez les fonctions AR d'EasyAR dans Unity. Le contenu suivant présente la prise en charge du framework Unity XR par EasyAR et les cas où l'utilisation d'AR Foundation peut être envisagée.
Prise en charge de Unity XR
Unity prend en charge le développement XR via son plugin framework ainsi qu'une série de feature packages et toolkits. EasyAR prend également en charge ces packages de composants Unity XR afin que vous puissiez utiliser les fonctions fournies par le framework Unity XR lorsque vous utilisez les fonctions AR d'EasyAR dans Unity.
EasyAR prend en charge les packages de composants Unity XR suivants:
| Nom affiché | Nom du package | Version minimale prise en charge | Obligatoire | Usage |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | Non | Fournit la prise en charge de Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | Non | Fournit la prise en charge d'AR Foundation |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | Non | Fournit la compatibilité de gestion ARCore SDK et récupère le type XR Loader au runtime |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | Non | Non utilisé directement |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | Non | Non utilisé directement |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | Non | Non utilisé directement |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | Non | Non utilisé directement |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | Non | Fournit la compatibilité de gestion ARCore SDK |
Note
EasyAR ne dépend pas du framework Unity XR pour fournir des fonctions AR. Par conséquent, si vous n'avez pas besoin d'utiliser des composants Unity XR tels qu'AR Foundation, ces packages peuvent ne pas être installés; EasyAR peut toujours fonctionner normalement sur les appareils pris en charge.
Prise en charge d'AR Foundation
AR Foundation est le framework de développement AR fourni par Unity. Ses fonctions AR sont implémentées via le système sous-jacent ou des tiers, et il est souvent utilisé pour prendre en charge ARCore, ARKit et certains headsets.
Relation entre EasyAR et 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 et AR Foundation sont deux frameworks AR indépendants. EasyAR ne dépend pas d'AR Foundation pour implémenter ses fonctions AR. EasyAR peut aussi implémenter motion tracking via des bibliothèques système telles qu'ARKit et ARCore. En même temps, EasyAR fournit deux implémentations de motion tracking qu'AR Foundation ne possède pas: l'implémentation motion tracking propre à EasyAR et l'implémentation fournie par AR Engine, ce qui offre une prise en charge d'appareils plus large qu'AR Foundation.
En même temps, EasyAR peut obtenir les données runtime d'AR Foundation et utiliser la capacité de motion tracking fournie par AR Foundation runtime pour piloter d'autres fonctions AR, offrant ainsi une compatibilité avec AR Foundation. Ces fonctions incluent:
- Mega
- Sparse spatial map
- Dense spatial map
- Image tracking et object tracking utilisant motion fusion
Vous pouvez consulter motion tracking et fonctions EasyAR pour comprendre plus en détail la relation entre motion tracking et les fonctions EasyAR.
Quand utiliser AR Foundation
Dans la plupart des cas, AR Foundation n'est pas nécessaire; EasyAR fonctionne normalement sur une gamme d'appareils plus large que celle prise en charge par AR Foundation. En général, AR Foundation peut être envisagé dans les deux situations suivantes:
Vous devez utiliser des fonctions ARKit ou ARCore qu'EasyAR n'a pas encapsulées
Si certaines fonctions ARCore ou ARKit nécessaires ne sont pas encapsulées dans EasyAR, vous pouvez utiliser AR Foundation. Par exemple, AR Foundation fournit la prise en charge du face tracking ARKit via ARFaceManager, tandis qu'EasyAR n'encapsule pas cette fonction.
Utiliser ARCore plutôt que le motion tracking implémenté par EasyAR sur certains téléphones Xiaomi présentant des problèmes système
Si vous devez utiliser ARCore sur tous les téléphones Xiaomi et Redmi prenant en charge ARCore, vous pouvez envisager d'activer AR Foundation. En raison de problèmes système sur certains téléphones Xiaomi et Redmi, l'encapsulation ARCore d'EasyAR ne prend pas en charge ces appareils, notamment les séries Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40, etc. (la liste n'est pas complète et la prise en charge des appareils continuera d'être mise à jour). Sur ces téléphones, ARCore ne sera pas utilisé avec la configuration par défaut; sur les téléphones prenant en charge EasyAR motion tracking, EasyAR motion tracking sera utilisé.
Lorsque vous utilisez AR Foundation, l'effet des fonctions EasyAR n'est pas optimal. Il existe deux cas:
- Sur certains téléphones Xiaomi et Redmi qu'EasyAR ne prend pas directement en charge, les données envoyées à EasyAR sont des images en niveaux de gris plutôt que des images couleur, ce qui affecte certains algorithmes. Comme il s'agit d'un problème propre à l'appareil, il ne peut pas être résolu par configuration.
- Lors de l'utilisation de Mega, la configuration utilisée par défaut par AR Foundation n'est pas optimale.
Attention
Vous pouvez obtenir de meilleures données d'entrée en modifiant ARCameraManager.currentConfiguration d'AR Foundation. Activer ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking peut sélectionner automatiquement le meilleur ARCameraManager.currentConfiguration. Cependant, certains téléphones eux-mêmes (par exemple Mi 10) présentent des problèmes: après modification de la configuration, aucune image ne peut être obtenue et EasyAR ne peut pas être utilisé (l'application a un arrière-plan image, mais les fonctions EasyAR ne réagissent pas). Il n'est donc généralement pas recommandé de l'activer; si vous devez l'utiliser, préparez une solution de repli lorsque EasyAR ne peut pas être utilisé.
Prise en charge des headsets
Comme le framework Unity XR ne fournit pas d'interfaces de données suffisamment complètes, EasyAR ne prend pas en charge les headsets via le framework Unity XR.
Sur les headsets prenant en charge le framework Unity XR, EasyAR prend en charge l'utilisation de Unity.XR.CoreUtils.XROrigin via XR Core Utilities, mais n'utilise pas le framework Unity XR pour implémenter la prise en charge des headsets. EasyAR n'affecte pas les fonctions de XR Interaction Toolkit; tant que l'appareil le prend en charge, il peut être utilisé normalement.
En général, les fabricants de headsets fournissent chacun un SDK ou des interfaces système pour fournir ces données. EasyAR prend en charge les headsets via les interfaces système et les SDK des fabricants. Parfois, ces SDK ne sont pas entièrement publics; EasyAR coopère alors avec les fabricants pour fournir une prise en charge complète. Prise en charge des headsets dans Unity présente les headsets pris en charge par EasyAR et leur mode d'utilisation.
Étapes suivantes
- Découvrez comment activer AR Foundation dans un projet EasyAR
- Découvrez la configuration scene et l'utilisation d'AR Foundation dans les projets EasyAR
- Découvrez comment basculer automatiquement AR Foundation selon la prise en charge de l'appareil