Guida alla migrazione del plugin Unity di EasyAR Sense
Questo articolo spiega come eseguire la migrazione dal vecchio plugin Unity di EasyAR Sense alla nuova versione.
Spiegazione sulla compatibilità
A partire dalla versione 4000, EasyAR Sense Unity Plugin segue il controllo delle versioni dei pacchetti (utilizzo di Semantic Versioning) richiesto da Unity, e la compatibilità può essere valutata in base al numero di versione.
La versione 4.7 è una versione di aggiornamento graduale, e due versioni 4.7 qualsiasi non sono compatibili tra loro.
Per le versioni precedenti alla 4.7, solo il terzo numero di versione indica la compatibilità all'indietro, e qualsiasi modifica dei primi due numeri di versione indica incompatibilità. Ad esempio, la versione 4.6.2 è compatibile con la 4.6.1, ma la 4.6.0 non è compatibile con la 4.5.0.
Avvertenza
Modificare il file tgz o non aggiornare completamente l'intero plugin dopo l'estrazione causerà incompatibilità.
Guida alla migrazione generale
Per eseguire la migrazione alla nuova versione, è necessario utilizzare la Package Manager window per eliminare il vecchio pacchetto del plugin e aggiungere il nuovo pacchetto.
Si consiglia di eseguire le seguenti operazioni:
- Chiudere l'istanza di Unity in uso.
- Eliminare le directory di compilazione della piattaforma generate durante la creazione del pacchetto dell'applicazione Unity.
- Riaprire il progetto Unity e rimuovere il vecchio EasyAR Sense Unity Plugin dal progetto.
- Importare la nuova versione di EasyAR Sense Unity Plugin.

Nota
Non è garantita la compatibilità tra le versioni dei file di esempio forniti dal plugin. Dopo l'aggiornamento del plugin, è possibile che gli esempi importati nel progetto non funzionino correttamente. Si consiglia di eliminare gli esempi della vecchia versione prima di procedere.
EasyAR contiene file di librerie native. Se si eseguono funzioni di libreria prima di eliminare o sostituire questi file (queste funzioni vengono chiamate anche durante la creazione del pacchetto), il sistema bloccherà i file di libreria, impedendo la loro eliminazione o sostituzione.
Importante
Prima di eliminare la vecchia versione, è necessario assicurarsi che nessuna scena sia in esecuzione nell'editor e che nessuna applicazione per nessuna piattaforma venga creata in pacchetto. In genere, si consiglia di chiudere Unity prima di eliminare o sostituire il pacchetto e di eseguire la sostituzione immediatamente dopo la riapertura.
Prima di ricreare il pacchetto utilizzando il nuovo plugin, è necessario eliminare le directory di compilazione della piattaforma generate durante la creazione del pacchetto di Unity, inclusa la directory del progetto Gradle generata durante la creazione del pacchetto per Android e la directory Xcode generata durante la creazione del pacchetto per iOS.
Consiglio
Di solito, queste directory si trovano nella cartella Library del progetto Unity (ad esempio, Library/Bee/Android/Prj/IL2CPP/Gradle), ma ciò può variare in base alla versione di Unity.
Se si è creato un pacchetto ma non si trova la directory corrispondente alla piattaforma, si consiglia di eliminare l'intera cartella Library.
Se dopo la migrazione viene visualizzata l'eccezione SchemaHashNotMatched, sono possibili due scenari:
- Le operazioni precedenti non sono state eseguite correttamente, causando un aggiornamento non riuscito o incompleto, oppure le directory di compilazione generate da Unity non sono state aggiornate correttamente (nota: se non si eliminano manualmente queste directory, è probabile che si verifichino errori). Si consiglia di seguire i passaggi consigliati o di ricompilare il progetto senza la cache
Library. - È stata modificata manualmente il file tgz di EasyAR o il plugin non è stato aggiornato completamente dopo l'estrazione. In questo caso, EasyAR non può garantire la disponibilità del plugin. È necessario scaricare nuovamente il pacchetto corretto e importarlo.
Importante
Poiché i file di libreria di EasyAR Sense e la posizione dei file di libreria dopo la creazione del pacchetto possono cambiare, se si conservano i progetti Gradle o Xcode generati da Unity, è necessario eliminare tutti i file relativi a EasyAR in anticipo, ad esempio EasyAR.aar, libEasyAR.so, easyar.framework, ecc.
Migrazione alla versione 4003
Consiglio
Sono presenti modifiche di incompatibilità solo quando si utilizza Mega, l'utilizzo delle altre funzionalità non è influenzato.
Quando si migra dalla versione 4002 alla 4003, oltre alle linee guida generali di migrazione sopra menzionate, è necessario prestare attenzione alle seguenti informazioni.
Modifica del flusso di sviluppo di Mega
Nella versione 4003, il flusso di sviluppo di Mega è stato notevolmente modificato. Se hai utilizzato altre funzionalità di EasyAR Sense Unity Plugin in precedenza, sarai già familiare con questo flusso.
Le principali modifiche includono i seguenti punti:
- Modifica delle funzionalità del pacchetto
com.easyar.mega- È possibile utilizzare Mega senza importare questo pacchetto; tuttavia, per caricare i modelli di block nell'editor per facilitare il posizionamento del contenuto, è ancora necessario importarlo.
- È stata aggiunta l'opzione di configurazione Mega Block/Landmark support: Devi abilitarla prima della compilazione.
- Modifica delle funzionalità dell'editor
- Il caricamento della mesh del block e di altri dati non richiede più lo strumento Mega Studio. Anche se viene aggiunto lo strumento di annotazione alla scena, non può essere utilizzato per lo sviluppo in Unity.
- Il pannello del componente MegaBlockController fornisce direttamente le funzionalità dell'editor per i block, consentendo una gestione più diretta.
- Lo strumento di verifica della sessione offre più opzioni di controllo utili per Mega, sostituendo le funzionalità precedenti in Mega Studio e quelle dell'area di test dell'editor di MegaTrackerFrameFilter.
- Modifica del comportamento dei target
- EasyAR.Mega.Scene.BlockController è stato sostituito da MegaBlockController. MegaBlockController è una sottoclasse di TargetController e segue lo standard modello di comportamento del target e la strategia di controllo attivo applicabile ai target.
- EasyAR.Mega.Scene.BlockRootController è stato rimosso. I block non hanno più un nodo radice e sono indipendenti l'uno dall'altro.
- MegaBlockController può essere creato tramite ARSessionFactory.CreateController.
Quando si esegue la migrazione dalla versione 4002 alla 4003, è importante riorganizzare i blocchi nella scena e sostituire i gruppi di nodi generati precedentemente da Mega Studio con il componente MegaBlockController:
- Elimina i gruppi di nodi generati precedentemente da Mega Studio nella scena, inclusi l'oggetto
MegaBlockse tutti i suoi oggetti block figli.- Se ci sono nodi di annotazione, eliminali anche loro.
- Se ci sono oggetti di contenuto sotto l'oggetto block, è consigliabile spostare questi oggetti di contenuto in altri nodi, assicurandoti di mantenere invariata la trasformazione locale.
- Aggiungi un target di tracciamento Mega alla scena.
- Se nella scena originale sono presenti più oggetti block, devi creare più target di tracciamento Mega nella scena.
- Sposta gli oggetti di contenuto presenti sotto l'oggetto block originale sotto il nuovo target di tracciamento Mega creato, assicurandoti di mantenere invariata la trasformazione locale.
- Assicurati di configurare l'id di MegaBlockController.Source, che deve essere uguale all'id dell'oggetto block originale per garantire il corretto caricamento in fase di esecuzione.
- Assicurati di configurare MegaBlockController.Tracker per utilizzare il corretto MegaTrackerFrameFilter.
- Se nella scena originale sono presenti nodi di annotazione, devi creare autonomamente nodi simili a oggetti 3D per sostituirli.
- Se nel progetto originale c'è una logica per la creazione di block in script, devi utilizzare il metodo descritto in Aggiungi un target di tracciamento Mega per sostituirlo.
- Elimina gli script non validi sul nodo figlio
Mega Tracker(MegaTrackerFrameFilter) diAR Session (EasyAR).
Per la maggior parte dei casi d'uso, dopo aver sostituito i nodi block, il resto del contenuto nella scena può funzionare correttamente senza modifiche.
Modifiche all'interfaccia
| Modulo funzionale | API v4002 | API v4003 | 说明 d'uso |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.BlockHolder | MegaBlockController.Tracker | Aggiungere un oggetto di tracciamento Mega Configurare il caricatore nel nodo block al posto del nodo root del block caricato dalla configurazione nel nodo tracker. |
| Mega | MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | MegaTrackerFrameFilter.SwitchEndPoint | Controllare il processo di tracciamento Mega |
| Mega | MegaTrackerFrameFilter.SimulatorLocation | MegaTrackerFrameFilter.SimulatorLocation | |
| Mega | CloudLocalizerFrameFilter.BlockHolder | MegaBlockController.Tracker | Aggiungere un oggetto di tracciamento Mega Configurare il caricatore nel nodo block al posto del nodo root del block caricato dalla configurazione nel nodo tracker. |
| Mega | CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | CloudLocalizerFrameFilter.SwitchEndPoint | Controllare il processo di tracciamento Mega |
| Mega | CloudLocalizerFrameFilter.SimulatorLocation | CloudLocalizerFrameFilter.SimulatorLocation | |
| Mega | MegaLocalizationResponse.Blocks | MegaLocalizationResponse.Blocks | Controllare il processo di tracciamento Mega |
| Mega Support | EasyAR.Mega.Scene.BlockHolder | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlock | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRoot | MegaBlockController.Tracker | Aggiungere un oggetto di tracciamento Mega Configurare il caricatore nel nodo block al posto del nodo root del block caricato dalla configurazione nel nodo tracker. |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.BlockActiveController | ActiveController | Strategia di controllo active per i target |
| Mega Support | EasyAR.Mega.Scene.BlockController | MegaBlockController | Aggiungere un oggetto di tracciamento Mega |
| Mega Support | EasyAR.Mega.Scene.BlockRootController | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.LocalTransform | LocalTransform | |
| Mega Support | EasyAR.Mega.Scene.Location | Location | |
| Mega Support | EasyAR.Mega.Scene.LocationConverter | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.AnnotationNode | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.AnnotationGroup | - | Funzione eliminata |
| Mega Support | EasyAR.Mega.Scene.NavPointGraph | - | Funzione eliminata |
Migrazione alla versione 4002
Quando si esegue la migrazione dalla versione 4001 alla 4002, oltre alle linee guida generali di migrazione sopra menzionate, è necessario prestare attenzione alle seguenti informazioni.
Modifiche all'interfaccia
| Modulo funzionale | v4001 API | v4002 API | Istruzioni per l'uso |
|---|---|---|---|
| Funzione ausiliaria | Image.Image(Buffer, PixelFormat, int, int) | Image.create |
Migrazione alla versione 4001
Consiglio
Le modifiche di incompatibilità si applicano solo quando si utilizza Mega, l'uso di altre funzionalità non è interessato.
Quando si migra dalla versione 4000 alla 4001, oltre alle linee guida generali di migrazione sopra menzionate, è necessario prestare attenzione ai seguenti punti.
Cambiamenti dell'interfaccia
| Modulo funzionale | v4000 API | v4001 API | Istruzioni per l'uso |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | Controllare il processo di tracciamento Mega |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | La funzionalità è stata eliminata |
Migrazione delle versioni storiche
Quando si esegue la migrazione da versioni precedenti alla 4000, è necessario fare riferimento al seguente contenuto: