2. Bien démarrer avec Azure Spatial Anchors2. Getting started with Azure Spatial Anchors

Dans ce tutoriel, vous allez découvrir les différentes étapes nécessaires pour démarrer et arrêter une session Azure Spatial Anchors, et pour créer, charger et télécharger des ancres spatiales Azure sur un appareil.In this tutorial, you will explore the various steps required to start and stop an Azure Spatial Anchors session and to create, upload, and download Azure Spatial Anchors on a single device.

ObjectifsObjectives

  • Découvrir les principes de base du développement avec Azure Spatial Anchors pour HoloLens 2Learn the fundamentals of developing with Azure Spatial Anchors for HoloLens 2
  • Apprendre à créer des ancres spatiales et à les récupérer à partir d’AzureLearn how to create spatial anchors and fetch them from Azure

Création et préparation du projet UnityCreating and preparing the Unity project

Dans cette section, vous allez créer un projet Unity et le préparer au développement avec MRTK.In this section, you will create a new Unity project and get it ready for MRTK development.

Suivez d’abord Initialisation de votre projet et déploiement de votre première application, en excluant les instructions données dans Générer votre application sur votre appareil, qui inclut les étapes suivantes :First, follow the Initializing your project and deploying your first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Création du projet Unity et affectation d’un nom pertinent, par exemple MRTK TutorialsCreating the Unity project and give it a suitable name, for example, MRTK Tutorials
  2. Changement de plateforme de générationSwitching the build platform
  3. Importation des ressources TextMeshPro EssentialImporting the TextMeshPro Essential Resources
  4. Importation du Mixed Reality ToolkitImporting the Mixed Reality Toolkit
  5. Configuration du projet UnityConfiguring the Unity project
  6. Création et configuration de la scène, et affectation d’un nom pertinent à la scène, par exemple AzureSpatialAnchorsCreating and configuring the scene and give the scene a suitable name, for example, AzureSpatialAnchors

Ensuite, suivez les instructions fournies dans Changement de l’option d’affichage de la reconnaissance spatiale pour :Then follow the Changing the Spatial Awareness Display Option instructions to:

  1. Remplacer le profil de configuration MRTK par DefaultHoloLens2ConfigurationProfileChange the MRTK configuration profile for to the DefaultHoloLens2ConfigurationProfile
  2. Choisir Occlusion dans les options d’affichage du maillage de la reconnaissance spatiale.Change the spatial awareness mesh display options to Occlusion.

Installation de packages Unity intégrésInstalling inbuilt Unity packages

Dans le menu Unity, sélectionnez Window > Package Manager pour ouvrir la fenêtre Package Manager, sélectionnez AR Foundation, puis cliquez sur le bouton Install pour installer le package :In the Unity menu, select Window > Package Manager to open the Package Manager window, then select AR Foundation and click the Install button to install the package:

Package Manager d’Unity avec AR Foundation sélectionné

Notes

Vous installez le package intégré AR Foundation, car il est nécessaire pour le SDK Azure Spatial Anchors que vous allez importer dans la section suivante.You are installing the AR Foundation package because the Azure Spatial Anchors SDK requires it, which you will import in the next section.

Importation des ressources du tutorielImporting the tutorial assets

Téléchargez et importez les packages personnalisés Unity suivants dans l’ordre où ils sont listés :Download and import the following Unity custom packages in the order they are listed:

Une fois que vous avez importé les ressources du tutoriel, votre fenêtre Project doit ressembler à ceci :After you have imported the tutorial assets your Project window should look similar to this:

Fenêtres Hierarchy, Scene et Project dans Unity, après l’importation des ressources du tutoriel

Notes

Si vous voyez des avertissements CS0618 signalant que « WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr) » est obsolète, vous pouvez les ignorer.If you see any CS0618 warnings regarding 'WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)' is obsolete, you can ignore these warnings.

Conseil

Pour vous rappeler comment importer un package personnalisé Unity, reportez-vous aux instructions fournies dans Importation du Mixed Reality Toolkit.For a reminder on how to import a Unity custom package, you can refer to the Importing the Mixed Reality Toolkit instructions.

Préparation de la scènePreparing the scene

Dans cette section, vous allez préparer la scène en ajoutant une partie des préfabriqués du tutoriel.In this section, you will prepare the scene by adding some of the tutorial prefabs.

Dans la fenêtre Project, accédez au dossier Assets > MRTK.Tutorials.AzureSpatialAnchors > Prefabs, puis cliquez sur les préfabriqués suivants et faites-les glisser dans la fenêtre Hierarchy pour les ajouter à votre scène :In the Project window, navigate to the Assets > MRTK.Tutorials.AzureSpatialAnchors > Prefabs folder, then click-and-drag the following prefabs into the Hierarchy window to add them to your scene:

  • Préfabriqués ButtonParentButtonParent prefabs
  • Préfabriqués DebugWindowDebugWindow prefabs
  • Préfabriqués InstructionsInstructions prefabs
  • Préfabriqués ParentAnchorParentAnchor prefabs

Unity avec des préfabriqués nouvellement ajoutés sélectionnés

Conseil

Si vous trouvez gênantes les grandes icônes de votre scène, par exemple les grandes icônes « T », vous pouvez les masquer en basculant les gizmos en position Off, comme le montre l’image ci-dessus.If you find the large icons in your scene, for example, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position, as shown in the image above.

Configuration des boutons pour faire fonctionner la scèneConfiguring the buttons to operate the scene

Dans cette section, vous allez ajouter des scripts à la scène pour créer une série d’événements de bouton qui montrent le comportement de base des ancres locales et des ancres spatiales Azure dans une application.In this section, you will add scripts to the scene to create a series of button events that demonstrate the fundamentals of how both local anchors and Azure Spatial Anchors behave in an app.

Dans la fenêtre Hierarchy, développez l’objet ButtonParent et sélectionnez le premier objet enfant nommé StartAzureSession, puis dans la fenêtre Inspector, configurez l’événement On Click () du composant Button Config Helper (Script) comme ceci :In the Hierarchy window, expand the ButtonParent object and select the first child object named StartAzureSession, in the Inspector window, configure the Button Config Helper (Script) component's On Click () event as follows:

  • Affectez l’objet ParentAnchor au champ None (Object) .Assign the ParentAnchor object to the None (Object) field
  • Dans la liste déroulante No Function, sélectionnez AnchorModuleScript > StartAzureSession () pour définir cette fonction comme l’action à exécuter quand l’événement est déclenché.From the No Function dropdown, select AnchorModuleScript > StartAzureSession () to set this function as the action to be executed when the event is triggered

Unity avec l’événement OnClick du bouton StartAzureSession configuré

Dans la fenêtre Hierarchy, sélectionnez le bouton suivant nommé StopAzureSession, puis dans la fenêtre Inspector, configurez l’événement On Click () du composant Button Config Helper (Script) comme ceci :In the Hierarchy window, select the next button named StopAzureSession, then in the Inspector window, configure the Button Config Helper (Script) component's On Click () event as follows:

  • Affectez l’objet ParentAnchor au champ None (Object) .Assign the ParentAnchor object to the None (Object) field
  • Dans la liste déroulante No Function, sélectionnez AnchorModuleScript > StopAzureSession () pour définir cette fonction comme l’action à exécuter quand l’événement est déclenché.From the No Function dropdown, select AnchorModuleScript > StopAzureSession () to set this function as the action to be executed when the event is triggered

Unity avec l’événement OnClick du bouton StopAzureSession configuré

Dans la fenêtre Hierarchy, sélectionnez le bouton suivant nommé CreateAzureAnchor, puis dans la fenêtre Inspector, configurez l’événement On Click () du composant Button Config Helper (Script) comme ceci :In the Hierarchy window, select the next button named CreateAzureAnchor, then in the Inspector window, configure the Button Config Helper (Script) component's On Click () event as follows:

  • Affectez l’objet ParentAnchor au champ None (Object) .Assign the ParentAnchor object to the None (Object) field
  • Dans la liste déroulante No Function, sélectionnez AnchorModuleScript > CreateAzureAnchor () pour définir cette fonction comme l’action à exécuter quand l’événement est déclenché.From the No Function dropdown, select AnchorModuleScript > CreateAzureAnchor () to set this function as the action to be executed when the event is triggered
  • Affectez l’objet ParentAnchor au champ vide None (Game Object) pour en faire l’argument de la fonction CreateAzureAnchor ().Assign the ParentAnchor object to the empty None (Game Object) field to make it the argument for the CreateAzureAnchor () function

Unity avec l’événement OnClick du bouton CreateAzureAnchor configuré

Dans la fenêtre Hierarchy, sélectionnez le bouton suivant nommé RemoveLocalAnchor, puis dans la fenêtre Inspector, configurez l’événement On Click () du composant Button Config Helper (Script) comme ceci :In the Hierarchy window, select the next button named RemoveLocalAnchor,then in the Inspector window, configure the Button Config Helper (Script) component's On Click () event as follows:

  • Affectez l’objet ParentAnchor au champ None (Object) .Assign the ParentAnchor object to the None (Object) field
  • Dans la liste déroulante No Function, sélectionnez AnchorModuleScript > RemoveLocalAnchor () pour définir cette fonction comme l’action à exécuter quand l’événement est déclenché.From the No Function dropdown, select AnchorModuleScript > RemoveLocalAnchor () to set this function as the action to be executed when the event is triggered
  • Affectez l’objet ParentAnchor au champ vide None (Game Object) pour en faire l’argument de la fonction RemoveLocalAnchor ().Assign the ParentAnchor object to the empty None (Game Object) field to make it the argument for the RemoveLocalAnchor () function

Unity avec l’événement OnClick du bouton RemoveLocalAnchor configuré

Dans la fenêtre Hierarchy, sélectionnez le bouton suivant nommé FindAzureAnchor, puis dans la fenêtre Inspector, configurez l’événement On Click () du composant Button Config Helper (Script) comme ceci :In the Hierarchy window, select the next button named FindAzureAnchor,then in the Inspector window, configure the Button Config Helper (Script) component's On Click () event as follows:

  • Affectez l’objet ParentAnchor au champ None (Object) .Assign the ParentAnchor object to the None (Object) field
  • Dans la liste déroulante No Function, sélectionnez AnchorModuleScript > FindAzureAnchor () pour définir cette fonction comme l’action à exécuter quand l’événement est déclenché.From the No Function dropdown, select AnchorModuleScript > FindAzureAnchor () to set this function as the action to be executed when the event is triggered

Unity avec l’événement OnClick du bouton FindAzureAnchor configuré

Dans la fenêtre Hierarchy, sélectionnez le bouton suivant nommé DeleteAzureAnchor, puis dans la fenêtre Inspector, configurez l’événement On Click () du composant Button Config Helper (Script) comme ceci :In the Hierarchy window, select the next button named DeleteAzureAnchor, then in the Inspector window, configure the Button Config Helper (Script) component's On Click () event as follows:

  • Affectez l’objet DeleteAzureAnchor au champ None (Object) .Assign the DeleteAzureAnchor object to the None (Object) field
  • Dans la liste déroulante No Function, sélectionnez AnchorModuleScript > DeleteAzureAnchor () pour définir cette fonction comme l’action à exécuter quand l’événement est déclenché.From the No Function dropdown, select AnchorModuleScript > DeleteAzureAnchor () to set this function as the action to be executed when the event is triggered

Unity avec l’événement OnClick du bouton DeleteAzureAnchor configuré

Connexion de la scène à la ressource AzureConnecting the scene to the Azure resource

Dans la fenêtre Hierarchy, sélectionnez l’objet ParentAnchor, puis dans la fenêtre Inspector, recherchez le composant Spatial Anchor Manager (Script) .In the Hierarchy window, select the ParentAnchor object, then in the Inspector window, locate the Spatial Anchor Manager (Script) component. Configurez la section Credentials avec les informations d’identification du compte Azure Spatial Anchors créé dans le cadre des prérequis pour cette série de tutoriels :Configure the Credentials section with the credentials from the Azure Spatial Anchors account created as part of the Prerequisites for this tutorial series:

  • Dans le champ Spatial Anchors Account ID, collez la valeur Account ID de votre compte Azure Spatial Anchors.In the Spatial Anchors Account ID field, paste the Account ID from your Azure Spatial Anchors account
  • Dans le champ Spatial Anchors Account Key, collez la valeur Access Key (primaire ou secondaire) de votre compte Azure Spatial Anchors.In the Spatial Anchors Account Key field, paste the primary or secondary Access Key from your Azure Spatial Anchors account

Unity avec Spatial Anchor Manager configuré

Essai des comportements de base d’Azure Spatial AnchorsTrying the basic behaviors of Azure Spatial Anchors

Azure Spatial Anchors ne peut pas s’exécuter dans Unity : pour tester la fonctionnalité Azure Spatial Anchors, vous devez donc générer et déployer l’application sur votre appareil.Azure Spatial Anchors can not run in Unity, so to test the Azure Spatial Anchors functionality, you need to build the project and deploy the app to your device.

Conseil

Pour un rappel de la façon de générer et déployer votre projet Unity sur HoloLens 2, reportez-vous aux instructions fournies dans [Génération de votre application sur votre HoloLens 2]((mr-learning-base-02.md#building-your-application-to-your-hololens-2).For a reminder on how to build and deploy your Unity project to HoloLens 2, you can refer to the [Building your application to your HoloLens 2]((mr-learning-base-02.md#building-your-application-to-your-hololens-2) instructions.

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 :When the app runs on your device, follow the on-screen instructions displayed on the Azure Spatial Anchor Tutorial Instructions panel:

  1. Déplacer le cube vers un autre emplacementMove the cube to a different location
  2. Démarrer la session AzureStart Azure Session
  3. Créer une ancre Azure (crée une ancre à l’emplacement du cube)Create Azure Anchor (creates an anchor at the location of the cube).
  4. Arrêter la session AzureStop Azure Session
  5. Supprimer l’ancre locale (permet à l’utilisateur de déplacer le cube)Remove Local Anchor (allows the user to move the cube)
  6. Déplacer le cube ailleursMove the cube somewhere else
  7. Démarrer la session AzureStart Azure Session
  8. Rechercher l’ancre Azure (positionne le cube à l’emplacement de l’étape 3)Find Azure Anchor (positions the cube at the location from step 3)
  9. Supprimer l’ancre AzureDelete Azure Anchor
  10. Arrêter la session AzureStop Azure session

Unity avec l’objet Instructions sélectionné

Attention

Azure Spatial Anchors utilise Internet pour enregistrer et charger les données des ancres : veillez donc à ce que votre appareil soit connecté à Internet.Azure Spatial Anchors uses the internet to save and load the anchor data, so make sure your device is connected to the internet.

Ancrage d’une expérienceAnchoring an experience

Dans les sections précédentes, vous avez découverts les principes de base d’Azure Spatial Anchors.In the previous sections, you learned the fundamentals of Azure Spatial Anchors. Nous avons utilisé un cube pour représenter et visualiser l’objet de jeu parent avec l’ancre attachée.We used a cube to represent and visualize the parent game object with the attached anchor. Dans cette section, vous allez découvrir comment ancrer une expérience complète en la plaçant en tant qu’enfant de l’objet ParentAnchor.In this section, you will learn how to anchor an entire experience by placing it as a child of the ParentAnchor object.

Dans la fenêtre Hierarchy, sélectionnez l’objet ParentAnchor, puis dans la fenêtre Inspector, configurez les composants Transform comme ceci :In the Hierarchy window, select the ParentAnchor object, then in the Inspector window, configure the Transform components as follows:

  • Affectez 1.1 à Scale X.Change Scale X to 1.1
  • Affectez 1.1 à Scale Z.Change Scale Z to 1.1

Unity avec l’objet ParentAnchor sélectionné, positionné et mis à l’échelle

Dans la fenêtre Project, accédez au dossier Assets > MRTK.Tutorials.GettingStarted > Prefabs > Rover, puis cliquez sur le préfabriqué RoverExplorer_Complete et faites-le glisser dans la fenêtre Hierarchy pour l’ajouter à la scène :In the Project window, navigate to the Assets > MRTK.Tutorials.GettingStarted > Prefabs > Rover folder, then click-and-drag the RoverExplorer_Complete prefab into the Hierarchy window to add it to the scene:

Unity avec le préfabriqué nouvellement ajouté RoverExplorer_Complete sélectionné

L’objet RoverModule_Complete que vous venez d’ajouter étant toujours sélectionné dans la fenêtre Hierarchy, faites-le glisser sur l’objet ParentAnchor pour en faire un enfant de l’objet ParentAnchor :With the newly added RoverModule_Complete object still selected in the Hierarchy window, drag it onto the ParentAnchor object to make it a child of the ParentAnchor object:

Unity avec l’objet RoverExplorer_Complete défini comme enfant de ParentAnchor

Si vous regénérez le projet et déployez l’application sur votre appareil, vous pouvez à présent repositionner l’intégralité de l’expérience Rover Explorer en déplaçant le cube redimensionné.If you now rebuild the project and deploy the app to your device, you can now reposition the entire Rover Explorer experience by moving the resized cube.

Conseil

Il existe un grand nombre de flux d’expériences utilisateur pour repositionner les expériences, notamment l’utilisation d’un objet de repositionnement (comme le cube utilisé dans ce tutoriel), l’utilisation d’un bouton pour basculer un cadre englobant qui entoure l’expérience, l’utilisation de gizmos de position et de rotation, etc.A variety of user experience flows for repositioning experiences, including the use of a repositioning object (such as the cube used in this tutorial), the use of a button to toggle a bounding box that surrounds the experience, the use of position and rotation gizmos, and more.

FélicitationsCongratulations

Dans ce tutoriel, vous avez découverts les principes de base d’Azure Spatial Anchors.In this tutorial, you learned the fundamentals of Azure Spatial Anchors. Ce tutoriel a introduit plusieurs boutons qui vous permettent d’explorer les différentes étapes nécessaires pour démarrer et arrêter une session Azure Spatial Anchors,This tutorial provided you with several buttons to let you explore the various steps required to start and stop an Azure Spatial Anchors session. et pour créer, charger et télécharger des ancres spatiales Azure sur un appareil.Also, to create, upload, and download Azure Spatial Anchors on a single device.

Dans le tutoriel suivant, vous allez apprendre à enregistrer des ID d’ancre Azure dans votre HoloLens 2 pour pouvoir les récupérer même après le redémarrage de l’application, puis à transférer des ID d’ancre entre plusieurs appareils pour obtenir un alignement spatial.In the next tutorial, you will learn how to save Azure anchor IDs to your HoloLens 2 for retrieval, even after the app is restarted, and how to transfer anchor IDs between multiple devices to achieve spatial alignment.