Guida alla migrazione di EasyAR Sense Unity Plugin
Questo articolo spiega come migrare dalle vecchie versioni di EasyAR Sense Unity Plugin alle nuove versioni.
Spiegazione della compatibilità
A partire dalla versione 4000, EasyAR Sense Unity Plugin segue il controllo versione dei pacchetti richiesto da Unity (Semantic Versioning), quindi la compatibilità può essere valutata dal numero di versione.
La versione 4.7 è una versione di aggiornamento graduale; due versioni 4.7 qualsiasi non sono compatibili.
Prima della 4.7, solo il terzo numero di versione indica la compatibilità all’indietro. Le modifiche ai primi due numeri indicano incompatibilità. Ad esempio, 4.6.2 è compatibile con 4.6.1, ma 4.6.0 non è compatibile con 4.5.0.
Avvertenza
Modificare il file tgz o aggiornare solo parzialmente il plugin dopo l’estrazione causerà incompatibilità.
Guida generale alla migrazione
Per migrare a una nuova versione, rimuovere prima il vecchio pacchetto plugin tramite la Package Manager window e aggiungere il nuovo pacchetto.
Si consiglia di seguire questi passaggi:
- Chiudere Unity.
- Eliminare la directory di build della piattaforma generata da Unity durante la compilazione dell’applicazione.
- Riaprire il project Unity e rimuovere dal project la vecchia versione di EasyAR Sense Unity Plugin.
- Importare la nuova versione di EasyAR Sense Unity Plugin.

Nota
I file di esempio forniti con il plugin non garantiscono compatibilità tra versioni. Dopo l’aggiornamento del plugin, gli esempi importati nel project potrebbero non funzionare correttamente. Si consiglia di eliminare i vecchi esempi prima di continuare.
EasyAR include file di libreria nativi. Se questi file sono già stati usati prima di essere eliminati o sostituiti, il sistema li bloccherà e non sarà possibile rimuoverli o sostituirli.
Importante
Prima di eliminare la vecchia versione, assicurarsi che nell’editor non sia in esecuzione alcuna scene e che non sia in corso la build di alcuna piattaforma. In genere si consiglia di chiudere Unity prima di eliminare o sostituire il pacchetto, quindi sostituirlo subito dopo averlo riaperto.
Prima di ricompilare con la nuova versione del plugin, eliminare prima le directory di build della piattaforma generate da Unity, inclusa la directory Gradle per Android e la directory Xcode per iOS.
Consiglio
Di solito queste directory si trovano nella cartella Library del project Unity, ad esempio Library/Bee/Android/Prj/IL2CPP/Gradle, ma possono variare a seconda della versione di Unity.
Se hai già compilato ma non trovi la directory della piattaforma corrispondente, si consiglia di eliminare l’intera cartella Library.
Se dopo la migrazione compare l’eccezione SchemaHashNotMatched, di solito ci sono due possibilità:
- I passaggi precedenti non sono stati eseguiti correttamente, quindi l’aggiornamento è fallito o incompleto, oppure la directory di build generata da Unity non è stata aggiornata correttamente. Se non viene eliminata manualmente, è molto probabile che si verifichi l’errore. Si consiglia di seguire i passaggi suggeriti o di ricompilare usando un project senza cache
Library. - Il file tgz di EasyAR è stato modificato manualmente oppure l’intero plugin non è stato aggiornato completamente dopo l’estrazione. In questo caso EasyAR non può garantirne il corretto utilizzo, quindi è necessario riscaricare il pacchetto corretto e importarlo.
Importante
Poiché i file di libreria di EasyAR Sense e la loro posizione dopo la build possono cambiare, se si conserva il project Gradle o Xcode generato da Unity, è necessario eliminare prima tutti i file relativi a EasyAR, come EasyAR.aar, libEasyAR.so, easyar.framework e così via.
Migrazione alla versione 4003
Consiglio
Solo quando si usa Mega ci sono modifiche incompatibili; l’uso di altre funzioni non è प्रभावित.
Durante la migrazione da 4002 a 4003, oltre alla guida generale sopra, bisogna prestare attenzione anche a quanto segue.
Cambiamenti nel workflow di sviluppo Mega
Nella versione 4003, il workflow di sviluppo Mega è cambiato molto. Se in precedenza hai già usato altre funzioni di EasyAR Sense Unity Plugin, questo workflow ti sarà più familiare.
I principali cambiamenti includono:
- Cambiamenti alle funzioni del pacchetto
com.easyar.mega- Per usare Mega, questo pacchetto non è più obbligatorio; ma per caricare i block model nell’editor e aiutare il posizionamento dei contenuti, è comunque necessario importarlo.
- È stata aggiunta l’opzione di configurazione Mega Block/Landmark support: attivala prima della build.
- Cambiamenti alle funzioni dell’editor
- Il caricamento di block mesh e altri dati non richiede più il tool Mega Studio, e anche se viene aggiunta una tool di annotazione alla scene, non può essere usata per lo sviluppo Unity.
- Il pannello del componente MegaBlockController fornisce direttamente le funzioni editor per block, rendendo la gestione più diretta.
- session verification tool offre più opzioni utili di controllo Mega, sostituendo le precedenti funzioni di Mega Studio e l’area di test editor di MegaTrackerFrameFilter.
- Cambiamenti nel comportamento del target
- EasyAR.Mega.Scene.BlockController è stato sostituito da MegaBlockController. MegaBlockController è una sottoclasse di TargetController, segue il target behavior mode standard e la active control strategy applicabile ai target.
- EasyAR.Mega.Scene.BlockRootController è stato rimosso; i block non hanno più root node e ogni block è indipendente.
- MegaBlockController può essere creato tramite ARSessionFactory.CreateController.
Durante la migrazione da 4002 a 4003, la cosa più importante è riorganizzare gli block object nella scene e sostituire il gruppo di node generato in precedenza da Mega Studio con il componente MegaBlockController:
- Eliminare nella scene il gruppo di node generato in precedenza da Mega Studio, incluso l’oggetto
MegaBlockse tutti gli block object al suo interno.- Se sono presenti annotation node, vanno eliminati anche quelli.
- Se gli block object hanno content object sotto di loro, si consiglia di spostare prima i content object sotto altri node, mantenendo invariato il local transform.
- Aggiungere target tracking Mega nella scene.
- Se la scene originale conteneva più block object, bisogna creare più target tracking Mega.
- Spostare i content object che si trovavano sotto gli block object originali sotto i nuovi target tracking Mega, mantenendo invariato il local transform.
- Prestare attenzione all’impostazione dell’id in MegaBlockController.Source; l’id deve corrispondere all’id del block object originale affinché il runtime possa caricarlo correttamente.
- Prestare attenzione all’impostazione di MegaBlockController.Tracker per usare il corretto MegaTrackerFrameFilter.
- Se la scene originale conteneva annotation node, è necessario crearne manualmente di simili per sostituirli.
- Se il project originale conteneva logica per creare block nello script, usare invece il metodo della aggiunta target tracking Mega.
- Rimuovere lo script non valido dal node figlio
Mega Tracker(MegaTrackerFrameFilter) sottoAR Session (EasyAR).
Per la maggior parte dei casi, dopo aver sostituito i block node, il resto del content della scene non deve essere modificato e può funzionare normalmente.
Modifiche API
| Modulo | API v4002 | API v4003 | Descrizione |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.BlockHolder | MegaBlockController.Tracker | Aggiungere target tracking Mega Nel block node, il loader viene configurato al posto del block root che prima era configurato sul tracker node. |
| Mega | MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | MegaTrackerFrameFilter.SwitchEndPoint | Controllare il processo di tracking Mega |
| Mega | MegaTrackerFrameFilter.SimulatorLocation | MegaTrackerFrameFilter.SimulatorLocation | |
| Mega | CloudLocalizerFrameFilter.BlockHolder | MegaBlockController.Tracker | Aggiungere target tracking Mega Nel block node, il loader viene configurato al posto del block root che prima era configurato sul tracker node. |
| Mega | CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | CloudLocalizerFrameFilter.SwitchEndPoint | Controllare il processo di tracking Mega |
| Mega | CloudLocalizerFrameFilter.SimulatorLocation | CloudLocalizerFrameFilter.SimulatorLocation | |
| Mega | MegaLocalizationResponse.Blocks | MegaLocalizationResponse.Blocks | Controllare il processo di tracking Mega |
| Mega Support | EasyAR.Mega.Scene.BlockHolder | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlock | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRoot | MegaBlockController.Tracker | Aggiungere target tracking Mega Nel block node, il loader viene configurato al posto del block root che prima era configurato sul tracker node. |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.BlockActiveController | ActiveController | Strategia active control applicabile ai target |
| Mega Support | EasyAR.Mega.Scene.BlockController | MegaBlockController | Aggiungere target tracking Mega |
| Mega Support | EasyAR.Mega.Scene.BlockRootController | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.LocalTransform | LocalTransform | |
| Mega Support | EasyAR.Mega.Scene.Location | Location | |
| Mega Support | EasyAR.Mega.Scene.LocationConverter | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.AnnotationNode | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.AnnotationGroup | - | Funzione rimossa |
| Mega Support | EasyAR.Mega.Scene.NavPointGraph | - | Funzione rimossa |
Migrazione alla versione 4002
Durante la migrazione dalla versione 4001 alla 4002, oltre alla guida generale sopra, bisogna prestare attenzione anche a quanto segue.
Modifiche API
| Modulo | API v4001 | API v4002 | Descrizione |
|---|---|---|---|
| Funzione ausiliaria | Image.Image(Buffer, PixelFormat, int, int) | Image.create |
Migrazione alla versione 4001
Consiglio
Solo quando si usa Mega ci sono modifiche incompatibili; l’uso di altre funzioni non è प्रभावित.
Durante la migrazione dalla versione 4000 alla 4001, oltre alla guida generale sopra, bisogna prestare attenzione anche a quanto segue.
Modifiche API
| Modulo | API v4000 | API v4001 | Descrizione |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | Controllare il processo di tracking Mega |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | Funzione rimossa |
Migrazione storica
Quando si migra da versioni precedenti alla 4000, fare riferimento a: