Suporte da EasyAR para a estrutura de XR da Unity
A EasyAR não depende da estrutura de XR da Unity para fornecer funcionalidades de RA, mas pode suportar alguns pacotes de componentes da estrutura de XR da Unity, permitindo aproveitar as funcionalidades fornecidas pela estrutura de XR da Unity ao usar as funcionalidades de RA da EasyAR no Unity. O conteúdo abaixo descreve o suporte da EasyAR para a estrutura de XR da Unity e quando considerar o uso da AR Foundation.
Suporte de XR da Unity
A Unity suporta desenvolvimento de XR através de sua estrutura de plug-ins e uma série de pacotes de recursos e kits de ferramentas. A EasyAR também suporta esses pacotes de componentes de XR da Unity, permitindo aproveitar as funcionalidades fornecidas pela estrutura de XR da Unity ao usar as funcionalidades de RA da EasyAR no Unity.
A EasyAR suporta os seguintes pacotes de componentes de XR da Unity:
| Nome de exibição | Nome do pacote | Versão mínima suportada | Necessário | Propósito |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | Não | Fornece suporte para Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | Não | Fornece suporte para AR Foundation |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | Não | Fornece compatibilidade com gerenciamento de SDK ARCore e obtenção do tipo de XR Loader em tempo de execução |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | Não | Não usado diretamente |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | Não | Não usado diretamente |
| Apple visionOS XR Plugin | com.unity.xr.visionos | 2.0.41 | Não | Não usado diretamente |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | Não | Não usado diretamente |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | Não | Fornece compatibilidade com gerenciamento de SDK ARCore |
Nota
A EasyAR não depende da estrutura de XR da Unity para fornecer funcionalidades de RA. Portanto, quando não houver necessidade de usar componentes de XR da Unity como AR Foundation, esses pacotes de componentes podem não ser instalados, e a EasyAR continuará funcionando normalmente em dispositivos suportados.
Suporte para AR Foundation
A AR Foundation é a estrutura de desenvolvimento de RA fornecida pela Unity, cujas funcionalidades de RA são implementadas através de sistemas subjacentes ou de terceiros, frequentemente usada para suportar ARCore, ARKit e alguns headsets.
Relação entre EasyAR e 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["Plugin Unity EasyAR Sense"]
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["Rastreador de<br>imagem"]
Object["Mapa espacial<br>esparso"]
MotionTracker["Rastreador de<br>movimento"]
MARCore["ARCore"]
MARKit["ARKit"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["Subsistemas XR"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:6
columns 1
System["Biblioteca do sistema"]
block:groupSystemWrapper
space
AREngine["Biblioteca do motor AR"]
space
ARCore["Biblioteca ARCore"]
space
ARKit["Biblioteca ARKit"]
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
A EasyAR e a AR Foundation são duas estruturas de RA independentes; a EasyAR não depende da AR Foundation para implementar suas funcionalidades de RA. A EasyAR também pode implementar capacidades de rastreamento de movimento através de bibliotecas do sistema como ARKit e ARCore. Além disso, a EasyAR fornece duas implementações de rastreamento de movimento que a AR Foundation não possui: a implementação própria de rastreamento de movimento da EasyAR e a implementação fornecida pelo AR Engine, oferecendo suporte a mais dispositivos em comparação com a AR Foundation.
Simultaneamente, a EasyAR pode obter dados de tempo de execução da AR Foundation e usar sua capacidade de rastreamento de movimento para impulsionar outras funcionalidades de RA durante a execução da AR Foundation, proporcionando compatibilidade com a AR Foundation. Essas funcionalidades incluem:
- Mega
- Mapa espacial esparso
- Mapa espacial denso
- Rastreamento de imagem e objeto usando fusão de movimento
Consulte Rastreamento de movimento e funcionalidades da EasyAR para entender a relação detalhada entre rastreamento de movimento e funcionalidades da EasyAR.
Quando usar AR Foundation
Na maioria dos casos, a AR Foundation não é necessária, pois a EasyAR funcionará em uma gama mais ampla de dispositivos do que os suportados pela AR Foundation. Geralmente, considere usar AR Foundation em duas situações:
Quando precisar de funcionalidades do ARKit ou ARCore não encapsuladas pela EasyAR
Se precisar usar algumas funcionalidades fornecidas pelo ARCore ou ARKit que não foram encapsuladas na EasyAR, você pode usar a AR Foundation. Por exemplo, a AR Foundation fornece suporte para rastreamento facial do ARKit ARFaceManager, que não foi encapsulado pela EasyAR.
Quando usar rastreamento de movimento implementado com ARCore em vez da EasyAR em alguns telefones Xiaomi com problemas no sistema
Se precisar usar ARCore em todos os telefones Xiaomi e Redmi que suportam ARCore, considere ativar a AR Foundation. Devido a problemas no sistema de alguns telefones Xiaomi e Redmi, o encapsulamento do ARCore da EasyAR não suporta esses dispositivos, incluindo as séries Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40, etc. (a lista não é exaustiva; o suporte a dispositivos é atualizado continuamente). Nestes telefones, na configuração padrão, o ARCore não será usado; em telefones que suportam o rastreamento de movimento da EasyAR, o rastreamento de movimento da EasyAR será usado.
O desempenho das funcionalidades da EasyAR não é ideal ao usar AR Foundation. Existem duas situações:
- Na parte dos telefones Xiaomi e Redmi que a EasyAR não suporta diretamente, os dados de entrada para a EasyAR são imagens em tons de cinza em vez de coloridas, o que afeta a eficácia de alguns algoritmos. Devido a problemas inerentes ao dispositivo, isso não pode ser resolvido por configuração.
- Ao usar o Mega, a configuração padrão usada pela AR Foundation não é ideal.
Cuidado
É possível modificar ARCameraManager.currentConfiguration da AR Foundation para obter dados de entrada mais otimizados. Ativar ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking pode escolher automaticamente a melhor ARCameraManager.currentConfiguration. No entanto, note que alguns telefones (como o Xiaomi 10) têm problemas próprios e não conseguem obter imagens após modificar a configuração, tornando a EasyAR inutilizável (o aplicativo tem fundo de imagem, mas as funcionalidades da EasyAR não respondem). Portanto, geralmente não é recomendado ativar isso; se for necessário usar, é essencial ter um plano de contingência caso a EasyAR não funcione.
Suporte para headsets
Como a estrutura de XR da Unity não fornece interfaces de dados suficientemente abrangentes, a EasyAR não suporta headsets através da estrutura de XR da Unity.
Em headsets que suportam a estrutura de XR da Unity, a EasyAR suportará o uso de Unity.XR.CoreUtils.XROrigin através do XR Core Utilities, mas não usa a estrutura de XR da Unity para implementar o suporte a headsets. A EasyAR não afeta as funcionalidades do XR Interaction Toolkit, que podem ser usadas normalmente se o dispositivo suportar.
Geralmente, os fabricantes de headsets fornecem SDKs ou interfaces de sistema para fornecer esses dados, e a EasyAR suporta headsets através de interfaces de sistema e SDKs dos fabricantes. Às vezes, esses SDKs não são totalmente públicos, e a EasyAR colabora com os fabricantes para fornecer suporte completo. O Suporte a headsets no Unity introduz os headsets suportados pela EasyAR e como usá-los.
Próximas etapas
- Saiba como ativar AR Foundation em projetos EasyAR
- Entenda configuração de cena e uso da AR Foundation em projetos EasyAR
- Saiba como alternar automaticamente para AR Foundation com base no suporte do dispositivo