Table of Contents

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:

  1. Chiudere l'istanza di Unity in uso.
  2. Eliminare le directory di compilazione della piattaforma generate durante la creazione del pacchetto dell'applicazione Unity.
  3. Riaprire il progetto Unity e rimuovere il vecchio EasyAR Sense Unity Plugin dal progetto.
  4. 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:

  1. 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.
  2. È 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

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:

  1. Elimina i gruppi di nodi generati precedentemente da Mega Studio nella scena, inclusi l'oggetto MegaBlocks e 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.
  2. 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.
  3. Se nella scena originale sono presenti nodi di annotazione, devi creare autonomamente nodi simili a oggetti 3D per sostituirli.
  4. 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.
  5. Elimina gli script non validi sul nodo figlio Mega Tracker (MegaTrackerFrameFilter) di AR 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:

Argomenti correlati