Övning – Kom igång med Azure Spatial Anchors

Slutförd

I den här lektionen ska du utforska de steg som krävs för att:

  • Starta och stoppa en Azure Spatial Anchors-session.
  • Skapa, ladda upp och ladda ned spatiala fästpunkter på en enda enhet.

När du har slutfört förutsättningarna för den här learn-modulen bör du redan ha ett Unity-projekt som har konfigurerats för OpenXR och MRTK3. Öppna projektet och kontrollera sedan att du har rätt funktioner valda:

  1. Gå till Redigera > Projektinställningar > Player > Publiceringsinställningar.
  2. Rulla ned till avsnittet Funktioner och välj följande om de inte redan är markerade:
  • RumsligUppfattning
  • InternetClient
  • PrivateNetworkClientServer

När du är klar stänger du fönstret Projektinställningar och fortsätter med nästa steg.

Installera inbyggda Unity-paket och importera självstudietillgångarna

  1. På menyraden väljer du Window>Package Manager.

  2. Kontrollera att AR Foundation version 5.0.3 eller den senaste versionen är installerad.

    Skärmbild av val för att verifiera AR Foundation-versionen för Package Manager.

Importera guide-tillgångarna

  1. Lägg till Azure Spatial Anchors SDK V2.12 eller den senaste versionen i projektet genom att följa den här guiden.

  2. Ladda ned och importera följande anpassade Unity-paket i den här ordningen:

    Not

    Import av både MRTK3 och ASA kan orsaka fel när ARFoundation-paketversionen inte matchar den importerade ARSubsystems-versionen. Tills detta har åtgärdats kan du manuellt lägga till com.unity.xr.arsubsystems version 5.0.2 i projektets Package Manager-som en lösning.

    Du får en varning om att ARSubsystem har blivit inaktuella, men du kan ignorera det. Om du ser några CS0618-varningar som säger "WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)" är föråldrad kan du också ignorera dessa.

Förbereda scenen

I det här avsnittet förbereder du scenen genom att lägga till några handlednings-prefabs.

  1. I fönstret Project går du till Assets>MRTK.Tutorials.AzureSpatialAnchors>Prefabs-mappen, och dra sedan följande prefabs till fönstret Hierarchy för att lägga till dem i scenen:

    • ButtonParent prefabs
    • instruktioner prefabrikationer
    • ParentAnchor förfab
    • Ändra ButtonParents Tranform/Position värden till följande: X = 0,0, Y = 1,6, Z = 0,6
    • Ändra anvisningarnas Tranform/Position värden till följande: X = -0,8, Y = 2,0, Z = 2,0
    • Ändra Värdena för ParentAnchor Tranform/Position till följande: X = -0.3, Y = 1.5, Z = 0.6 Skärmbild av prefabs som lagts till i hierarkifönstret.

    Tips

    Om du hittar de stora ikonerna i din scen (till exempel de stora inramade "T"-ikonerna) som distraherar, kan du dölja dem genom att öppna listrutan Gizmos och stänga av visning av ikoner för enskilda objekt.

  2. I fönstret Hierarchy väljer du MRTK XR Rig>Camera Offset.

  3. I fönstret Inspector använder du knappen Lägg till komponent för att lägga till följande komponenter:

    • AR Anchor Manager (Skript)
    • DisableDiagnosticsSystem (skript)

    Not

    När du lägger till komponenten AR Anchor Manager (Skript) läggs komponenten XR Origin automatiskt till eftersom komponenten AR Anchor Manager (Script) kräver det.

    Skärmbild av att lägga till AR Anchor Manager.

Konfigurera knapparna för att använda scenen

I det här avsnittet lägger du till skript i scenen för att skapa en serie knapphändelser som visar grunderna i hur både lokala fästpunkter och spatiala fästpunkter beter sig i en app.

  1. I fönstret Hierarki expanderar du objektet ButtonParent och väljer det första underordnade objektet StartAzureSession.

  2. I fönstret Inspector navigerar du till komponenten Pressable Button. Den har en när klickad () händelse.

  3. I Hierarchyväljer du objektet ParentAnchor och drar det sedan till Inspector och släpper det i fältet On Clicked() händelsens None (Object).

  4. Välj listrutan Ingen funktion och välj sedan AnchorModuleScript>StartAzureSession (). Den här funktionen körs när händelsen utlöses.

    Skärmbild som visar Unity med knappen StartAzureSessions OnClick-händelse konfigurerad.

  5. I fönstret Hierarki i listan över barnobjekt hos ButtonParent väljer du Stoppa AzureSession

  6. I fönstret Inspector navigerar du till komponenten Pressable Button.

  7. I Hierarchyväljer du objektet ParentAnchor, drar det till Inspector och släpper det i On Clicked()-händelsens None (Object)-fält.

  8. Välj listrutan Ingen funktion och välj sedan AnchorModuleScript>StopAzureSession ().

    Skärmbild av Unity med knappen StopAzureSession:s OnClick-händelse konfigurerad.

  9. I fönstret Hierarchy i ButtonParent lista över underordnade, väljer du SkapaAzureAnchor.

  10. I fönstret Inspector navigerar du till komponenten Pressable Button.

  11. I Hierarchyväljer du objektet ParentAnchor och drar det sedan till Inspector och släpper det i On Clicked() händelsens None (Object) field.

  12. Välj listrutan Ingen funktion, och därefter välj AnchorModuleScript>CreateAzureAnchor.

  13. Välj objektet ParentAnchor igen och dra det sedan till Inspector och släpp det i parametern AnchorModuleScript.CreateAzureAnchor.

    Skärmbild av Unity med knappen CreateAzureAnchor konfigurerad för OnClick-händelsen.

  14. I panelen Hierarchy i listan över underordnade objekt i ButtonParent väljer du RemoveLocalAnchor.

  15. I fönstret Inspector navigerar du till komponenten Pressable Button.

  16. I Hierarchyväljer du objektet ParentAnchor och drar det sedan till Inspector och släpper det i On Clicked() händelsens None (Object) field.

  17. Välj listrutan Ingen funktion och välj sedan AnchorModuleScript>RemoveLocalAnchor.

  18. Välj objektet ParentAnchor igen och dra det sedan till Inspector och släpp det i parametern AnchorModuleScript.RemoveLocalAnchor.

    Skärmbild av Unity med OnClick-händelsen för RemoveLocalAnchor-knappen konfigurerad.

  19. I Hierarchy-fönstret i listan med det underordnade ButtonParent väljer du FindAzureAnchor.

  20. I fönstret Inspector navigerar du till komponenten Pressable Button.

  21. I Hierarchymarkerar du objektet ParentAnchor, och dra det sedan till Inspector och släpp det i On Clicked() händelsens None (Object) fält.

  22. Välj listrutan Ingen funktion och välj sedan AnchorModuleScript>FindAzureAnchor.

    Skärmbild av Unity med FindAzureAnchor-knappens OnClick-händelse konfigurerad.

  23. I fönstret Hierarchy i ButtonParent underordnad lista väljer du Ta bort AzureAnchor.

  24. I fönstret Inspector navigerar du till komponenten Pressable Button.

  25. I Hierarchyväljer du objektet ParentAnchor och drar det sedan till Inspector och släpp det i On Clicked() händelsens None (Object) fält.

  26. Välj först listrutan Ingen funktion och välj sedan AnchorModuleScript>DeleteAzureAnchor.

    Skärmbild av Unity med Ta bort AzureAnchor-knappen konfigurerad för OnClick-händelsen.

Ansluta scenen till Azure-resursen

  1. I fönstret Hierarki väljer du objektet ParentAnchor.

  2. I fönstret Inspector, leta upp komponenten Spatial Anchor Manager (Skript).

  3. Konfigurera avsnittet autentiseringsuppgifter med autentiseringsuppgifterna från Azure Spatial Anchors-kontot som du skapade som en del av förutsättningarna för den här självstudieserien:

    • I fältet Spatial Anchors-konto-ID klistrar du in värdet konto-ID från ditt Azure Spatial Anchors-konto.
    • I fältet Spatial Anchors-kontonyckel klistrar du in det primära eller sekundära Access Key--värdet från ditt Azure Spatial Anchors-konto.
    • I fältet Spatial Anchors-kontodomän klistrar du in värdet Kontodomän från ditt Azure Spatial Anchors-konto.

    Skärmbild av Unity med Spatial Anchor Manager konfigurerad.

Prova de grundläggande beteendena för Azure Spatial Anchors

Azure Spatial Anchors kan inte köras i Unity. För att testa Azure Spatial Anchors-funktionerna måste du skapa projektet och distribuera appen till din enhet.

Tips

För en påminnelse om hur du bygger och distribuerar ditt Unity-projekt till HoloLens 2, se artikeln Bygga din applikation till HoloLens 2, med början i avsnittet (Frivilligt) Bygg och distribuera applikationen.

När appen körs på din enhet, följ instruktionerna på skärmen som visas på Azure Spatial Anchor-instruktionspanelen för självstudier.

  1. Flytta kuben till en annan plats.
  2. Starta en Azure session.
  3. Skapa en Azure-fästpunkt på kubens plats.
  4. Stoppa Azure-sessionen.
  5. Ta bort den lokala fästpunkten så att användaren kan flytta kuben.
  6. Flytta kuben till någon annanstans.
  7. Starta en Azure-session.
  8. Hitta Azure-fästpunkten för att placera kuben på platsen från steg 3.
  9. Ta bort Azure Anchor.
  10. Stoppa Azure-sessionen.

Försiktighet

Azure Spatial Anchors använder Internet för att spara och läsa in ankardata. Kontrollera att enheten är ansluten till Internet.