Guide de migration easyAR sense unity plugin
Cet article décrit comment migrer de l'ancienne version d'EasyAR Sense Unity Plugin vers la nouvelle version.
Note de compatibilité
À partir de la version 4000, EasyAR Sense Unity Plugin suit le contrôle de version de paquet (utilisation de Semantic Versioning) requis par Unity, et la compatibilité peut être jugée selon le numéro de version.
4.7 est une version mise à jour progressivement, aucune des deux versions 4.7 n'est compatible.
Pour les versions antérieures à 4.7, seul le troisième numéro de version indique la compatibilité rétrograde ; toute modification des deux premiers numéros de version indique une incompatibilité. Par exemple, 4.6.2 est compatible avec 4.6.1, mais 4.6.0 n'est pas compatible avec 4.5.0.
Avertissement
La modification du fichier tgz ou la mise à jour incomplète de l'ensemble du plugin après décompression entraînera une incompatibilité.
Guide de migration général
Pour migrer vers une nouvelle version, vous devez d'abord utiliser la fenêtre du gestionnaire de packages pour supprimer l'ancienne version du plugin et ajouter le nouveau package.
Il est recommandé de suivre les étapes suivantes :
- Fermez Unity en cours d'utilisation.
- Supprimez les répertoires de compilation de plateforme générés par Unity lors de l'empaquetage.
- Rouvrez le projet Unity et supprimez l'ancienne version de l'EasyAR Sense Unity Plugin du projet.
- Importez la nouvelle version de l'EasyAR Sense Unity Plugin.

Note
Les fichiers d'exemple fournis par le plugin ne garantissent pas la compatibilité entre les versions. Après la mise à niveau du plugin, les exemples importés dans le projet peuvent ne pas fonctionner correctement. Il est recommandé de supprimer les exemples de l'ancienne version avant de procéder.
EasyAR contient des fichiers de bibliothèque native. Si des fonctions de bibliothèque ont été exécutées avant la suppression ou le remplacement (elles sont également appelées lors de l'empaquetage), ces fichiers de bibliothèque seront verrouillés par le système et ne pourront pas être supprimés ou remplacés.
Important
Avant de supprimer l'ancienne version, assurez-vous qu'aucune scène n'est en cours d'exécution dans l'éditeur et qu'aucune application n'est en cours d'empaquetage pour une plateforme. Il est généralement recommandé de fermer Unity avant de supprimer ou de remplacer un package, et de le remplacer immédiatement après la réouverture.
Avant de ré-empaqueter avec la nouvelle version du plugin, vous devez d'abord supprimer les répertoires de compilation de plateforme générés par Unity lors de l'empaquetage, y compris le projet Gradle généré pour Android et le répertoire Xcode généré pour iOS.
Astuce
Généralement, ces répertoires peuvent se trouver dans le dossier Library du projet Unity (par exemple, Library/Bee/Android/Prj/IL2CPP/Gradle), mais cela peut varier selon les versions d'Unity.
Si vous avez empaqueté mais que vous ne trouvez pas le répertoire correspondant à la plateforme, il est recommandé de supprimer l'intégralité du dossier Library.
Si une exception SchemaHashNotMatched apparaît après la migration, il y a généralement deux possibilités :
- Les opérations précédentes n'ont pas été effectuées correctement, entraînant un échec ou une incomplétude de la mise à niveau, ou les répertoires de compilation générés par Unity n'ont pas été correctement mis à jour (remarque : si vous ne les avez pas supprimés manuellement, il y a de fortes chances qu'une erreur se produise). Il est recommandé de suivre les étapes suggérées ou d'utiliser un projet sans cache
Librarypour recompiler. - Vous avez modifié manuellement le fichier tgz d'EasyAR ou vous n'avez pas mis à jour l'intégralité du plugin après la décompression. Dans ce cas, EasyAR ne peut garantir la fonctionnalité. Vous devez télécharger à nouveau le package correct et l'importer.
Important
Étant donné que les fichiers de bibliothèque d'EasyAR Sense et leur emplacement après empaquetage peuvent changer, si vous conservez les projets Gradle ou Xcode générés par Unity, vous devez supprimer au préalable tous les fichiers liés à EasyAR, tels que EasyAR.aar, libEasyAR.so, easyar.framework, etc.
Migration vers la version 4003
Astuce
Seules les modifications incompatibles concernent l'utilisation de Mega, les autres fonctionnalités ne sont pas affectées.
Lors de la migration de la version 4002 à la version 4003, en plus des directives générales de migration mentionnées ci-dessus, les points suivants doivent être pris en compte.
Modifications du processus de développement de Mega
Dans la version 4003, le processus de développement de Mega a subi des changements importants. Si vous avez déjà utilisé d'autres fonctionnalités de l'EasyAR Sense Unity Plugin, ce processus vous sera familier.
Les changements principaux incluent :
- Changements de fonctionnalité du package
com.easyar.mega- Il n'est plus nécessaire d'importer ce package pour utiliser Mega ; cependant, il reste nécessaire de l'importer si vous souhaitez charger des modèles de blocs dans l'éditeur pour aider au placement du contenu.
- Ajout de l'option de configuration Mega Block/Landmark support : elle doit être activée avant la construction.
- Changements de fonctionnalité de l'éditeur
- Le chargement des maillages de blocs et d'autres données ne nécessite plus l'outil Mega Studio. Même si des outils d'annotation sont ajoutés à la scène, ils ne peuvent pas être utilisés pour le développement Unity.
- Le panneau du composant MegaBlockController fournit directement les fonctionnalités d'éditeur pour les blocs, rendant la gestion plus directe.
- L'outil de validation de session offre plus d'options de contrôle pratiques pour Mega, remplaçant les fonctionnalités précédentes du Mega Studio et la zone de test de l'éditeur du MegaTrackerFrameFilter.
- Changements de comportement des cibles
- EasyAR.Mega.Scene.BlockController a été remplacé par MegaBlockController. MegaBlockController est une sous-classe de TargetController, suivant le modèle de comportement standard des cibles et la stratégie de contrôle active applicable aux cibles.
- EasyAR.Mega.Scene.BlockRootController a été supprimé. Les blocs n'ont plus de nœud racine ; chaque bloc est indépendant.
- MegaBlockController peut être créé par ARSessionFactory.CreateController.
Lors de la migration de la version 4002 à la 4003, il est essentiel de réorganiser les objets de blocs dans la scène, en remplaçant les groupes de nœuds précédemment générés par Mega Studio par le composant MegaBlockController :
- Supprimez de la scène les groupes de nœuds précédemment générés par Mega Studio, y compris l'objet
MegaBlockset tous les objets de blocs qu'il contient.- S'il existe des nœuds d'annotation, supprimez-les également.
- Si des objets de contenu se trouvent sous les objets de blocs, il est recommandé de les déplacer d'abord sous un autre nœud, en veillant à conserver la transformation locale (local transform) inchangée.
- Ajoutez des cibles de suivi Mega à la scène.
- Si la scène d'origine contenait plusieurs objets de blocs, vous devez créer plusieurs cibles de suivi Mega dans la scène.
- Déplacez les objets de contenu qui se trouvaient sous les anciens objets de blocs sous les nouvelles cibles de suivi Mega créées, en veillant à conserver la transformation locale (local transform) inchangée.
- Veillez à configurer l'id de MegaBlockController.Source. Cet id doit correspondre à l'id de l'objet de bloc d'origine pour garantir un chargement correct lors de l'exécution.
- Veillez à configurer MegaBlockController.Tracker pour utiliser le bon MegaTrackerFrameFilter.
- S'il existait des nœuds d'annotation dans la scène d'origine, vous devez créer vous-même des nœuds similaires (par exemple, des objets 3D) pour les remplacer.
- Si votre projet d'origine contenait une logique de création de blocs dans des scripts, vous devez la remplacer par la méthode décrite dans Ajouter des cibles de suivi Mega.
- Supprimez les scripts obsolètes sur le nœud enfant
Mega Tracker(MegaTrackerFrameFilter) deAR Session (EasyAR).
Pour la grande majorité des cas d'utilisation, une fois le remplacement des nœuds de blocs effectué, le reste du contenu de la scène fonctionnera normalement sans nécessiter de modifications.
Changements d'interface
| Module fonctionnel | API v4002 | API v4003 | Instructions d'utilisation |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.BlockHolder | MegaBlockController.Tracker | Ajouter une cible de suivi Mega Configurer le chargeur au nœud block au lieu du nœud racine block chargé au nœud tracker. |
| Mega | MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | MegaTrackerFrameFilter.SwitchEndPoint | Contrôler le processus de suivi Mega |
| Mega | MegaTrackerFrameFilter.SimulatorLocation | MegaTrackerFrameFilter.SimulatorLocation | |
| Mega | CloudLocalizerFrameFilter.BlockHolder | MegaBlockController.Tracker | Ajouter une cible de suivi Mega Configurer le chargeur au nœud block au lieu du nœud racine block chargé au nœud tracker. |
| Mega | CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | CloudLocalizerFrameFilter.SwitchEndPoint | Contrôler le processus de suivi Mega |
| Mega | CloudLocalizerFrameFilter.SimulatorLocation | CloudLocalizerFrameFilter.SimulatorLocation | |
| Mega | MegaLocalizationResponse.Blocks | MegaLocalizationResponse.Blocks | Contrôler le processus de suivi Mega |
| Mega Support | EasyAR.Mega.Scene.BlockHolder | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlock | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRoot | MegaBlockController.Tracker | Ajouter une cible de suivi Mega Configurer le chargeur au nœud block au lieu du nœud racine block chargé au nœud tracker. |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.BlockActiveController | ActiveController | Stratégie de contrôle active pour les cibles |
| Mega Support | EasyAR.Mega.Scene.BlockController | MegaBlockController | Ajouter une cible de suivi Mega |
| Mega Support | EasyAR.Mega.Scene.BlockRootController | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.LocalTransform | LocalTransform | |
| Mega Support | EasyAR.Mega.Scene.Location | Location | |
| Mega Support | EasyAR.Mega.Scene.LocationConverter | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.AnnotationNode | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.AnnotationGroup | - | Fonction supprimée |
| Mega Support | EasyAR.Mega.Scene.NavPointGraph | - | Fonction supprimée |
Migration vers la version 4002
Lors de la migration de la version 4001 à la version 4002, en plus des directives de migration générales mentionnées ci-dessus, les points suivants doivent être pris en compte.
Changement d'interface
| Module de fonctionnalité | v4001 API | v4002 API | Instructions d'utilisation |
|---|---|---|---|
| Fonctionnalité auxiliaire | Image.Image(Buffer, PixelFormat, int, int) | Image.create |
Migration vers la version 4001
Astuce
Seulement des changements incompatibles existent lors de l'utilisation de Mega, l'utilisation des autres fonctionnalités n'est pas affectée.
Lors de la migration de la version 4000 vers la version 4001, en plus du guide de migration générale ci-dessus, il faut également faire attention aux points suivants.
Changement d'interface
| Module de fonctionnalité | API v4000 | API v4001 | Notice d'utilisation |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | Contrôler le processus de suivi Mega |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | fonctionnalité supprimée |
Migration des versions historiques
Lors de la migration depuis des versions antérieures à 4000, veuillez vous référer aux contenus suivants :