Exercice - Bien démarrer avec Azure Spatial Anchors

Effectué

Dans cette unité, vous allez explorer les étapes nécessaires pour :

  • Démarrer et arrêter une session Azure Spatial Anchors.
  • Créer, charger et télécharger des ancres spatiales sur un seul appareil.

Une fois satisfaits les prérequis de ce module d’apprentissage, vous devez disposer d’un projet Unity configuré pour OpenXR et MRTK3. Ouvrez ce projet, puis vérifiez que les fonctionnalités appropriées sont sélectionnées :

  1. Accédez à Edit (Modifier) > Project Settings (Paramètres du projet) > Player (Lecteur) > Publishing Settings (Paramètres de publication).
  2. Faites défiler jusqu’à la section Capabilities (Fonctionnalités) et sélectionnez les éléments suivants s’ils ne sont pas déjà sélectionnés :
  • SpatialPerception
  • InternetClient
  • PrivateNetworkClientServer

Quand vous avez terminé, fermez la fenêtre Paramètres du projet et passez aux étapes suivantes.

Installer les packages Unity intégrés et importer les ressources du tutoriel

  1. Dans la barre de menus, sélectionnez Window (Fenêtre)>Package Manager (Gestionnaire de package).

  2. Vérifiez que la version 5.0.3 ou la dernière version d’AR Foundation est installée.

    Screenshot of selections for verifying the AR Foundation version for Package Manager.

Importer les ressources du tutoriel

  1. Ajoutez le SDK Azure Spatial Anchors V2.12, ou la dernière version, à votre projet en suivant ce tutoriel.

  2. Téléchargez et importez les packages Unity personnalisés suivants dans cet ordre :

    Remarque

    Il est possible que l’importation de MRTK3 et d’ASA entraîne des erreurs lorsque la version du package ARFoundation ne correspond pas à la version d’ARSubsystems importée. Jusqu’à ce que ce problème soit résolu, vous pouvez ajouter manuellement com.unity.xr.arsubsystems version 5.0.2 au Gestionnaire de package du projet comme solution de contournement.

    Vous recevrez un avertissement indiquant qu’ARSubsystems a été déconseillé, mais vous pouvez l’ignorer. Si vous voyez des avertissements CS0618 indiquant que « WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr) » est obsolète, vous pouvez les ignorer.

Préparer la scène

Dans cette section, vous allez préparer la scène en ajoutant une partie des préfabriqués du tutoriel.

  1. Sur le volet Project (Projet), accédez au dossier Assets (Ressources)>MRTK.Tutorials.AzureSpatialAnchors>Prefabs (Préfabriqués), puis faites glisser les préfabriqués suivants vers le volet Hierarchy pour les ajouter à votre scène :

    • Préfabriqués ButtonParent
    • Préfabriqués Instructions
    • Préfabriqués ParentAnchor
    • Remplacez les valeurs Tranform/Position de ButtonParent par les valeurs suivantes : X = 0.0, Y = 1.6, Z = 0.6
    • Remplacez les valeurs Tranform/Position des instructions par les valeurs suivantes : X = -0.8, Y = 2.0, Z = 2.0
    • Remplacez les valeurs Tranform/Position de ParentAnchor par les valeurs suivantes : X = -0.3, Y = 1.5, Z = 0.6 Screenshot of prefabs added to the Hierarchy pane.

    Conseil

    Si vous trouvez gênantes les grandes icônes de votre scène (par exemple, les grandes icônes « T » encadrées), vous pouvez les masquer en ouvrant la liste déroulante Gizmos et en désactivant l’affichage des icônes pour des objets spécifiques.

  2. Dans la fenêtre Hierarchy, sélectionnez MRTK XR Rig>Camera Offset (Décalage de la caméra).

  3. Dans le volet Inspector, utilisez le bouton Add Component (Ajouter un composant) pour ajouter les composants suivants :

    • AR Anchor Manager (Script)
    • DisableDiagnosticsSystem (Script)

    Remarque

    Lorsque vous ajoutez le composant AR Anchor Manager (Script), le composant XR Origin est automatiquement ajouté, car le composant AR Anchor Manager (Script) le nécessite.

    Screenshot of adding AR Anchor Manager.

Configurer les boutons pour faire fonctionner la scène

Dans cette section, vous allez ajouter des scripts à la scène pour créer une série d’événements de bouton qui illustrent les bases du comportement des ancres locales et des ancres spatiales dans une application.

  1. Dans le volet Hierarchy, développez l’objet ButtonParent, puis sélectionnez le premier objet enfant, StartAzureSession.

  2. Dans le volet Inspector, accédez au composant Pressable Button. Il a un événement On Clicked ().

  3. Dans Hierarchy, sélectionnez l’objet ParentAnchor, puis faites-le glisser vers Inspector et déposez-le dans le champ None (Object) (Aucun (objet)) de l’événement On Clicked().

  4. Sélectionnez la liste déroulante No Function (Aucune fonction), puis AnchorModuleScript>StartAzureSession (). Cette fonction sera exécutée quand l’événement sera déclenché.

    Screenshot that shows Unity with the StartAzureSession button's OnClick event configured.

  5. Dans le volet Hierarchy, dans la liste enfant ButtonParent, sélectionnez StopAzureSession.

  6. Dans le volet Inspector, accédez au composant Pressable Button.

  7. Dans Hierarchy, sélectionnez l’objet ParentAnchor, puis faites-le glisser vers Inspector (Inspecteur) et déposez-le dans le champ None (Object) (Aucun (objet)) de l’événement On Clicked() (Sur clic()).

  8. Sélectionnez la liste déroulante No Function, puis AnchorModuleScript>StopAzureSession ().

    Screenshot of Unity with the StopAzureSession button's OnClick event configured.

  9. Dans le volet Hierarchy, dans la liste enfant ButtonParent, sélectionnez CreateAzureAnchor.

  10. Dans le volet Inspector, accédez au composant Pressable Button.

  11. Dans Hierarchy, sélectionnez l’objet ParentAnchor, puis faites-le glisser vers Inspector (Inspecteur) et déposez-le dans le champ None (Object) (Aucun (objet)) de l’événement On Clicked() (Sur clic()).

  12. Sélectionnez la liste déroulante No Function (Aucune fonction), puis AnchorModuleScript>CreateAzureAnchor.

  13. Sélectionnez à nouveau l’objet ParentAnchor, puis faites-le glisser vers Inspector et déposez-le dans le paramètre AnchorModuleScript.CreateAzureAnchor.

    Screenshot of Unity with the CreateAzureAnchor button's OnClick event configured.

  14. Dans le volet Hierarchy, dans la liste enfant ButtonParent, sélectionnez RemoveLocalAnchor.

  15. Dans le volet Inspector, accédez au composant Pressable Button.

  16. Dans Hierarchy, sélectionnez l’objet ParentAnchor, puis faites-le glisser vers Inspector et déposez-le dans le champ None (Object) (Aucun (objet)) de l’événement On Clicked() (Sur clic()).

  17. Sélectionnez la liste déroulante No Function, puis AnchorModuleScript>RemoveLocalAnchor.

  18. Sélectionnez à nouveau l’objet ParentAnchor, puis faites-le glisser vers Inspector et déposez-le dans le paramètre AnchorModuleScript.RemoveLocalAnchor.

    Screenshot of Unity with the RemoveLocalAnchor button's OnClick event configured.

  19. Dans le volet Hierarchy, dans la liste enfant ButtonParent, sélectionnez FindAzureAnchor.

  20. Dans le volet Inspector, accédez au composant Pressable Button.

  21. Dans Hierarchy, sélectionnez l’objet ParentAnchor, puis faites-le glisser vers Inspector et déposez-le dans le champ None (Object) (Aucun (objet)) de l’événement On Clicked() (Sur clic()).

  22. Sélectionnez la liste déroulante No Function, puis AnchorModuleScript>FindAzureAnchor.

    Screenshot of Unity with the FindAzureAnchor button's OnClick event configured.

  23. Dans le volet Hierarchy, dans la liste enfant ButtonParent, sélectionnez DeleteAzureAnchor.

  24. Dans le volet Inspector, accédez au composant Pressable Button.

  25. Dans Hierarchy, sélectionnez l’objet ParentAnchor, puis faites-le glisser vers Inspector et déposez-le dans le champ None (Object) (Aucun (objet)) de l’événement On Clicked() (Sur clic()).

  26. Sélectionnez la liste déroulante No Function, puis AnchorModuleScript>DeleteAzureAnchor.

    Screenshot of Unity with the DeleteAzureAnchor button's OnClick event configured.

Connecter la scène à la ressource Azure

  1. Dans le volet Hierarchy, sélectionnez l’objet ParentAnchor.

  2. Dans le volet Inspector, localisez le composant Spatial Anchor Manager (Script) (Gestionnaire d’ancrage spatial (Script)).

  3. Configurez la section Credentials avec les informations d’identification du compte Azure Spatial Anchors que vous avez créé dans le cadre des prérequis de cette série de tutoriels :

    • Dans le champ Spatial Anchors Account ID, collez la valeur Account ID de votre compte Azure Spatial Anchors.
    • Dans le champ Spatial Anchors Account Key, collez la valeur de la Access Key primaire ou secondaire de votre compte Azure Spatial Anchors.
    • Dans le champ Spatial Anchors Account Domain, collez la valeur Account Domain de votre compte Azure Spatial Anchors.

    Screenshot of Unity with the Spatial Anchor Manager configured.

Essayer les comportements de base des ancres spatiales Azure

Azure Spatial Anchors ne peut pas s’exécuter dans Unity. Pour tester la fonctionnalité Azure Spatial Anchors, vous devez générer le projet et déployer l’application sur votre appareil.

Conseil

Pour obtenir un rappel sur la façon de générer et de déployer votre projet Unity dans HoloLens 2, consultez l’article Création de votre application pour HoloLens 2 à partir de la section (Facultatif) Générer et déployer l’application.

Quand l’application s’exécute sur votre appareil, suivez les instructions à l’écran affichées dans le panneau des instructions du tutoriel Azure Spatial Anchors :

  1. Déplacez le cube vers un autre emplacement.
  2. Démarrez une session Azure.
  3. Créez une ancre Azure à l’emplacement du cube.
  4. Arrêtez la session Azure.
  5. Supprimez l’ancre locale pour permettre à l’utilisateur de déplacer le cube.
  6. Déplacez le cube ailleurs.
  7. Démarrez une session Azure.
  8. Recherchez l’ancre Azure pour positionner le cube à l’emplacement de l’étape 3.
  9. Supprimez l’ancre Azure.
  10. Arrêtez la session Azure.

Attention

Azure Spatial Anchors utilise Internet pour enregistrer et charger les données d’ancre. Vérifiez que votre appareil est connecté à Internet.