Guia de migração do EasyAR Sense Unity Plugin
Este artigo descreve como migrar do EasyAR Sense Unity Plugin de versão antiga para a versão mais recente.
Explicação de compatibilidade
A partir da versão 4000, o EasyAR Sense Unity Plugin segue o controle de versão de pacotes (usando Semantic Versioning) exigido pelo Unity, e a compatibilidade pode ser verificada com base no número da versão.
A versão 4.7 é uma versão de atualização progressiva, e quaisquer duas versões 4.7 não são compatíveis.
Nas versões anteriores à 4.7, apenas o terceiro número da versão indica compatibilidade reversa. Alterações nos dois primeiros números da versão indicam incompatibilidade. Por exemplo, a versão 4.6.2 é compatível com a versão 4.6.1, mas a versão 4.6.0 não é compatível com a versão 4.5.0.
Aviso
Modificar o arquivo tgz ou não atualizar completamente todo o plugin após a extração causará incompatibilidade.
Guia de migração geral
Para migrar para uma nova versão, primeiro você precisa usar a Package Manager window para remover o pacote do plug - in da versão antiga e adicionar o novo pacote.
Recomenda - se seguir as etapas abaixo:
- Feche o Unity em uso.
- Remova o diretório de compilação da plataforma gerado pelo Unity ao empacotar o aplicativo.
- Abra novamente o projeto do Unity e remova o EasyAR Sense Unity Plugin da versão antiga do projeto.
- Importe a versão do EasyAR Sense Unity Plugin da nova versão.

Nota
Não há garantia de compatibilidade entre versões dos arquivos de exemplo fornecidos pelo plug - in. Após a atualização do plug - in, os exemplos importados para o projeto podem não funcionar corretamente. Recomenda - se remover os exemplos da versão antiga antes de prosseguir.
O EasyAR contém arquivos de bibliotecas nativas. Se você tiver executado funções da biblioteca antes de removê - los ou substituí - los (isso também acontece durante o empacotamento), esses arquivos de biblioteca serão bloqueados pelo sistema e não poderão ser removidos ou substituídos.
Importante
Antes de remover a versão antiga, é necessário garantir que não haja nenhuma cena em execução no editor ou nenhum aplicativo para nenhuma plataforma sendo empacotado. Normalmente, é recomendado fechar o Unity antes de remover ou substituir o pacote e substituí - lo imediatamente após reabri - lo.
Antes de empacotar novamente usando o plug - in da nova versão, é necessário remover o diretório de compilação da plataforma gerado pelo Unity, incluindo o diretório do projeto Gradle gerado ao empacotar o Android e o diretório Xcode gerado ao empacotar o iOS.
Dica
Normalmente, esses diretórios podem estar na pasta Library do projeto do Unity (por exemplo, Library/Bee/Android/Prj/IL2CPP/Gradle), mas isso pode variar de acordo com a versão do Unity.
Se você tiver empacotado o aplicativo, mas não encontrar o diretório da plataforma correspondente, recomendamos remover toda a pasta Library.
Se a exceção SchemaHashNotMatched ocorrer após a migração, geralmente há duas possibilidades:
- As operações mencionadas anteriormente não foram realizadas corretamente, resultando em uma atualização falha ou incompleta, ou o diretório de compilação gerado pelo Unity não foi atualizado corretamente (observe: se você não remover manualmente, provavelmente haverá erros). Recomenda - se seguir as etapas recomendadas ou recompilar o projeto sem o cache da pasta
Library. - Você modificou manualmente o arquivo tgz do EasyAR ou não atualizou completamente todo o plug - in após descompactá - lo. Nesse caso, o EasyAR não pode garantir a disponibilidade. É necessário fazer o download novamente do pacote correto e importá - lo.
Importante
Como os arquivos de bibliotecas do EasyAR Sense e a localização dos arquivos de bibliotecas após o empacotamento podem mudar, se você mantiver o projeto Gradle ou Xcode gerado pelo Unity, é necessário remover previamente todos os arquivos relacionados ao EasyAR, como EasyAR.aar, libEasyAR.so, easyar.framework, etc.
Migração para a versão 4003
Dica
Há alterações incompatíveis apenas ao usar o Mega. O uso de outras funcionalidades não é afetado.
Ao migrar da versão 4002 para a 4003, além das diretrizes gerais de migração mencionadas acima, também é necessário prestar atenção ao seguinte conteúdo.
Mudança no fluxo de desenvolvimento do Mega
Na versão 4003, houve uma grande mudança no fluxo de desenvolvimento do Mega. Se você usou outros recursos do EasyAR Sense Unity Plugin anteriormente, ficará familiarizado com esse fluxo.
As principais mudanças incluem o seguinte:
- Mudança na funcionalidade do pacote
com.easyar.mega- Você pode usar o Mega sem importar esse pacote; no entanto, ainda é necessário importá - lo se você quiser carregar modelos de block no editor para auxiliar na disposição do conteúdo.
- Foi adicionada a opção de configuração Mega Block/Landmark support: [Precisa ser ativada antes da empacotagem](../mega/enable - mega.md).
- Mudança na funcionalidade do editor
- O carregamento de block mesh e outros dados não requer mais a ferramenta Mega Studio. Mesmo se você adicionar a ferramenta de anotação à cena, ela não pode ser usada para desenvolvimento no Unity.
- O painel do componente MegaBlockController fornece diretamente a funcionalidade do editor de block, tornando o gerenciamento mais direto.
- Ferramenta de validação da sessão oferece mais opções úteis de controle do Mega, substituindo as funcionalidades do antigo Mega Studio e a área de teste do editor do MegaTrackerFrameFilter.
- Mudança no comportamento do target
- EasyAR.Mega.Scene.BlockController foi substituído por MegaBlockController. MegaBlockController é uma subclasse de TargetController e segue o padrão de comportamento de target padrão target behavior pattern e a estratégia de controle ativo [active control strategy](../fundamentals/active - control.md) aplicável a targets.
- EasyAR.Mega.Scene.BlockRootController foi removido. Os block não têm mais um nó raiz e cada block é independente.
- MegaBlockController pode ser criado por ARSessionFactory.CreateController.
Ao migrar da versão 4002 para a 4003, o ponto principal é reorganizar os objetos block na cena e substituir os grupos de nós gerados pelo Mega Studio anteriormente pelo componente MegaBlockController:
- Remova os grupos de nós gerados pelo Mega Studio na cena, incluindo o objeto
MegaBlockse todos os objetos block abaixo dele.- Se houver nós de anotação, também é necessário removê - los.
- Se houver objetos de conteúdo abaixo dos objetos block, é recomendável mover os objetos de conteúdo para outros nós primeiro, lembrando de manter a transformação local inalterada.
- Adicione objetivos de rastreamento Mega na cena.
- Se houver vários objetos block na cena original, é necessário criar vários objetivos de rastreamento Mega na cena.
- Mova os objetos de conteúdo abaixo dos objetos block originais para os novos objetivos de rastreamento Mega criados, lembrando de manter a transformação local inalterada.
- Preste atenção na configuração do id de MegaBlockController.Source. Esse id precisa ser consistente com o id do objeto block original para garantir que seja carregado corretamente em tempo de execução.
- Preste atenção na configuração de MegaBlockController.Tracker para usar o MegaTrackerFrameFilter correto.
- Se houver nós de anotação na cena original, você precisa criar nós de objetos 3D semelhantes para substituí - los.
- Se houver lógica de criação de block em scripts no projeto original, você precisa usar o método em Adicionar objetivos de rastreamento Mega para substituí - la.
- Remova os scripts inválidos no sub - nó
Mega Tracker(MegaTrackerFrameFilter) doAR Session (EasyAR).
Para a maioria dos casos de uso, depois de substituir os nós block, o restante do conteúdo na cena pode funcionar normalmente sem modificação.
Alterações de interface
| Módulo de funcionalidade | v4002 API | v4003 API | Instruções de uso |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.BlockHolder | MegaBlockController.Tracker | Adicionar objetivo de rastreamento Mega Configure o carregador no nó block em vez de configurar a raiz do block carregada no nó tracker. |
| Mega | MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | MegaTrackerFrameFilter.SwitchEndPoint | Controlar o processo de rastreamento Mega |
| Mega | MegaTrackerFrameFilter.SimulatorLocation | MegaTrackerFrameFilter.SimulatorLocation | |
| Mega | CloudLocalizerFrameFilter.BlockHolder | MegaBlockController.Tracker | Adicionar objetivo de rastreamento Mega Configure o carregador no nó block em vez de configurar a raiz do block carregada no nó tracker. |
| Mega | CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | CloudLocalizerFrameFilter.SwitchEndPoint | Controlar o processo de rastreamento Mega |
| Mega | CloudLocalizerFrameFilter.SimulatorLocation | CloudLocalizerFrameFilter.SimulatorLocation | |
| Mega | MegaLocalizationResponse.Blocks | MegaLocalizationResponse.Blocks | Controlar o processo de rastreamento Mega |
| Suporte Mega | EasyAR.Mega.Scene.BlockHolder | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.BlockHolder.MultiBlock | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.BlockHolder.BlockRoot | MegaBlockController.Tracker | Adicionar objetivo de rastreamento Mega Configure o carregador no nó block em vez de configurar a raiz do block carregada no nó tracker. |
| Suporte Mega | EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.BlockActiveController | ActiveController | Estratégia de controle ativo para o target |
| Suporte Mega | EasyAR.Mega.Scene.BlockController | MegaBlockController | Adicionar objetivo de rastreamento Mega |
| Suporte Mega | EasyAR.Mega.Scene.BlockRootController | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.LocalTransform | LocalTransform | |
| Suporte Mega | EasyAR.Mega.Scene.Location | Location | |
| Suporte Mega | EasyAR.Mega.Scene.LocationConverter | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.AnnotationNode | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.AnnotationGroup | - | A funcionalidade foi removida |
| Suporte Mega | EasyAR.Mega.Scene.NavPointGraph | - | A funcionalidade foi removida |
Migração para a versão 4002
Ao migrar da versão 4001 para a 4002, além das diretrizes gerais de migração mencionadas acima, é necessário prestar atenção ao seguinte conteúdo.
Alterações na interface
| Módulo de funcionalidade | v4001 API | v4002 API | Instruções de uso |
|---|---|---|---|
| Funcionalidade auxiliar | Image.Image(Buffer, PixelFormat, int, int) | Image.create |
Migrar para a versão 4001
Dica
Alterações incompatíveis ocorrem apenas ao usar o Mega, o uso de outras funcionalidades não é afetado.
Ao migrar da versão 4000 para a 4001, além do guia geral de migração mencionado acima, preste atenção aos seguintes pontos.
Alterações na interface
| Módulo de funcionalidade | API v4000 | API v4001 | Instruções de uso |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | Controlar o processo de rastreamento Mega |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | A funcionalidade foi removida |
Migração de versões históricas
Ao migrar de versões anteriores a 4000, consulte o seguinte conteúdo: