Table of Contents

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:

  1. Chiudere Unity.
  2. Eliminare la directory di build della piattaforma generata da Unity durante la compilazione dell’applicazione.
  3. Riaprire il project Unity e rimuovere dal project la vecchia versione di EasyAR Sense Unity Plugin.
  4. 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à:

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

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:

  1. Eliminare nella scene il gruppo di node generato in precedenza da Mega Studio, incluso l’oggetto MegaBlocks e 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.
  2. 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.
  3. Se la scene originale conteneva annotation node, è necessario crearne manualmente di simili per sostituirli.
  4. Se il project originale conteneva logica per creare block nello script, usare invece il metodo della aggiunta target tracking Mega.
  5. Rimuovere lo script non valido dal node figlio Mega Tracker (MegaTrackerFrameFilter) sotto AR 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:

Argomenti correlati