Soporte de EasyAR para el framework Unity XR
EasyAR no depende del framework Unity XR para proporcionar funciones AR, pero puede admitir algunos paquetes de componentes del framework Unity XR, de modo que al usar las funciones AR de EasyAR en Unity se puedan aprovechar las capacidades que ofrece Unity XR. A continuación se presenta el soporte de EasyAR para Unity XR y en qué casos se puede considerar usar AR Foundation.
Soporte de Unity XR
Unity admite el desarrollo XR mediante su plugin framework y una serie de feature packages y toolkits. EasyAR también admite estos paquetes de componentes Unity XR, de modo que al usar las funciones AR de EasyAR en Unity se puedan aprovechar las capacidades del framework Unity XR.
EasyAR admite los siguientes paquetes de componentes Unity XR:
| Nombre mostrado | Nombre del paquete | Versión mínima soportada | Obligatorio | Uso |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | No | Proporciona soporte para Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | No | Proporciona soporte de AR Foundation |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | No | Proporciona compatibilidad de administración de ARCore SDK y obtiene el tipo de XR Loader en runtime |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | No | No se usa directamente |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | No | No se usa directamente |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | No | No se usa directamente |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | No | No se usa directamente |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | No | Proporciona compatibilidad de administración de ARCore SDK |
Nota
EasyAR no depende del framework Unity XR para proporcionar funciones AR. Por lo tanto, cuando no se necesitan componentes Unity XR como AR Foundation, estos paquetes no tienen que instalarse y EasyAR seguirá funcionando normalmente en dispositivos soportados.
Soporte de AR Foundation
AR Foundation es el framework de desarrollo AR proporcionado por Unity. Sus funciones AR se implementan mediante el sistema subyacente o terceros, y se usa con frecuencia para soportar ARCore, ARKit y algunos headsets.
Relación entre EasyAR y 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 y AR Foundation son dos frameworks AR independientes. EasyAR no depende de AR Foundation para implementar sus funciones AR. EasyAR también puede implementar motion tracking mediante bibliotecas del sistema como ARKit y ARCore. Al mismo tiempo, EasyAR proporciona dos implementaciones de motion tracking que AR Foundation no tiene: la implementación propia de EasyAR y la implementación proporcionada por AR Engine, ofreciendo un soporte de dispositivos más amplio que AR Foundation.
Además, EasyAR puede obtener datos de AR Foundation runtime y usar la capacidad de motion tracking que ofrece AR Foundation runtime para impulsar otras funciones AR, proporcionando compatibilidad con AR Foundation. Estas funciones incluyen:
- Mega
- Sparse spatial map
- Dense spatial map
- Image tracking y object tracking con motion fusion
Consulte motion tracking y funciones de EasyAR para conocer con más detalle la relación entre motion tracking y las funciones de EasyAR.
Cuándo es necesario usar AR Foundation
En la mayoría de los casos no es necesario usar AR Foundation; EasyAR funciona normalmente en una gama de dispositivos más amplia que la soportada por AR Foundation. Normalmente puede considerarse AR Foundation en las dos situaciones siguientes:
Se necesitan funciones de ARKit o ARCore que EasyAR no ha encapsulado
Si algunas funciones de ARCore o ARKit que necesita no están encapsuladas en EasyAR, puede usar AR Foundation. Por ejemplo, AR Foundation proporciona soporte para face tracking de ARKit mediante ARFaceManager, y EasyAR no encapsula esta función.
Usar ARCore, en lugar del motion tracking implementado por EasyAR, en algunos teléfonos Xiaomi con problemas del sistema
Si necesita usar ARCore en todos los teléfonos Xiaomi y Redmi que soportan ARCore, puede considerar habilitar AR Foundation. Debido a problemas del sistema en algunos teléfonos Xiaomi y Redmi, la encapsulación ARCore de EasyAR no soporta estos dispositivos, incluidas las series Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40, etc. (la lista no es completa y el soporte de dispositivos seguirá actualizándose). En estos teléfonos, ARCore no se usará con la configuración predeterminada; en teléfonos que soportan EasyAR motion tracking se usará EasyAR motion tracking.
Al usar AR Foundation, el efecto de las funciones EasyAR no es óptimo. Existen dos casos:
- En esa parte de teléfonos Xiaomi y Redmi no soportados directamente por EasyAR, los datos de entrada para EasyAR son imágenes en escala de grises en lugar de imágenes en color, lo que afecta a algunos algoritmos. Debido a problemas del propio dispositivo, esto no puede resolverse mediante configuración.
- Al usar Mega, la configuración que AR Foundation usa por defecto no es óptima.
Precaución
Puede obtener datos de entrada mejores modificando ARCameraManager.currentConfiguration de AR Foundation. Habilitar ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking puede completar automáticamente la selección de la mejor ARCameraManager.currentConfiguration. Pero debe tener en cuenta que algunos teléfonos (por ejemplo Mi 10) tienen problemas propios: después de modificar la configuración no se pueden obtener imágenes y EasyAR no podrá usarse (la aplicación tiene fondo de imagen, pero las funciones EasyAR no reaccionan). Por ello normalmente no se recomienda habilitarlo; si necesita usarlo, prepare una estrategia de fallback para cuando EasyAR no pueda usarse.
Soporte de headsets
Como el framework Unity XR no proporciona interfaces de datos suficientemente completas, EasyAR no soporta headsets a través del framework Unity XR.
En headsets que soportan el framework Unity XR, EasyAR soporta el uso de Unity.XR.CoreUtils.XROrigin mediante XR Core Utilities, pero no usa el framework Unity XR para implementar el soporte de headsets. EasyAR no afecta a las funciones de XR Interaction Toolkit; siempre que el dispositivo lo soporte, puede usarse normalmente.
En general, cada fabricante de headsets proporciona su propio SDK o interfaces del sistema para proporcionar estos datos. EasyAR soporta headsets mediante interfaces del sistema y SDK de fabricantes. A veces estos SDK no son completamente públicos, y EasyAR coopera con los fabricantes para proporcionar soporte completo. Soporte de headsets en Unity presenta los headsets soportados por EasyAR y cómo usarlos.
Próximos pasos
- Aprenda cómo habilitar AR Foundation en un proyecto EasyAR
- Conozca la configuración de scene y uso de AR Foundation en proyectos EasyAR
- Aprenda cómo cambiar automáticamente AR Foundation según el soporte del dispositivo