Table of Contents

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 :

  1. Fermez Unity en cours d'utilisation.
  2. Supprimez les répertoires de compilation de plateforme générés par Unity lors de l'empaquetage.
  3. Rouvrez le projet Unity et supprimez l'ancienne version de l'EasyAR Sense Unity Plugin du projet.
  4. 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 :

  1. 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 Library pour recompiler.
  2. 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

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 :

  1. Supprimez de la scène les groupes de nœuds précédemment générés par Mega Studio, y compris l'objet MegaBlocks et 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.
  2. 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.
  3. 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.
  4. 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.
  5. Supprimez les scripts obsolètes sur le nœud enfant Mega Tracker (MegaTrackerFrameFilter) de AR 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 :

Thèmes connexes