Übung: Erste Schritte mit Azure Spatial Anchors

Abgeschlossen

In dieser Einheit befassen Sie sich mit dem Folgenden:

  • Starten und Beenden einer Azure Spatial Anchors-Sitzung
  • Erstellen, Hochladen und Herunterladen von Raumankern auf einem einzelnen Gerät

Nachdem Sie die Voraussetzungen für dieses Lernmodul erfüllt haben, sollten Sie bereits über ein Unity-Projekt verfügen, das für OpenXR und MRTK3 eingerichtet und konfiguriert ist. Öffnen Sie das Projekt und überprüfen Sie, ob die richtigen Funktionen ausgewählt sind:

  1. Navigieren Sie zu Bearbeiten > Projekteinstellungen > Player > Veröffentlichungseinstellungen.
  2. Scrollen Sie nach unten zum Abschnitt Funktionen, und wählen Sie folgende aus, falls dies noch nicht geschehen ist:
  • SpatialPerception
  • InternetClient
  • PrivateNetworkClientServer

Wenn Sie fertig sind, schließen Sie das Fenster Projekteinstellungen, und fahren Sie mit den folgenden Schritten fort.

Installieren von integrierten Unity-Paketen und Importieren der Tutorialressourcen

  1. Wählen Sie in der Menüleiste Fenster>Paket-Manager aus.

  2. Überprüfen Sie, ob die AR Foundation-Version 5.0.3 oder die neueste Version installiert ist.

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

Importieren der Tutorialressourcen

  1. Fügen Sie Ihrem Projekt das Azure Spatial Anchors SDK V2.12 oder die neueste Version hinzu, indem Sie die Schritte in diesem Tutorial ausführen.

  2. Laden Sie die folgenden benutzerdefinierten Unity-Pakete in diesen Ordner herunter, und importieren Sie sie:

    Hinweis

    Das Importieren von MRTK3 und ASA kann zu Fehlern führen, wenn die ARFoundation-Paketversion nicht mit der importierten ARSubsystems-Version übereinstimmt. Bis dies korrigiert ist, können Sie als Problemumgehung „com.unity.xr.arsubsystems“, Version 5.0.2 manuell zum Paket-Manager des Projekts hinzufügen.

    Sie erhalten eine Warnung, dass ARSubsystems veraltet ist. Diese können Sie jedoch ignorieren. Wenn CS0618-Warnungen angezeigt werden, die besagen, dass „WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)“ veraltet ist, können Sie diese ebenfalls ignorieren.

Vorbereiten der Szene

In diesem Abschnitt bereiten Sie die Szene vor, indem Sie einige Tutorial-Prefabs hinzufügen.

  1. Wechseln Sie im Bereich Projekt zum Ordner Ressource>MRTK. Tutorials.AzureSpatialAnchors>Prefabs und ziehen Sie dann die folgenden Prefabs in den Bereich Hierarchie, um sie ihrer Szene hinzuzufügen:

    • ButtonParent-Prefabs
    • Instructions-Prefabs
    • ParentAnchor-Prefabs
    • Ändern Sie die Transform/Position-Werte von ButtonParent wie folgt: X = 0.0, Y = 1.6, Z = 0.6
    • Ändern Sie die Transform/Position-Werte von Instructions wie folgt: X = -0.8, Y = 2.0, Z = 2.0
    • Ändern Sie die Transform/Position-Werte von ParentAnchor wie folgt: X = -0.3, Y = 1.5, Z = 0.6 Screenshot of prefabs added to the Hierarchy pane.

    Tipp

    Wenn Sie die großen Symbole in Ihrer Szene (z. B. die großen gerahmten „T“-Symbole) als störend empfinden, können Sie sie ausblenden, indem Sie das Dropdown „Gizmos“ öffnen und die Anzeige von Symbolen für einzelne Objekte deaktivieren.

  2. Wählen Sie im Fenster Hierarchie die Option MRTK XR Rig>Kameraversatz aus.

  3. Verwenden Sie im Bereich Inspektor die Schaltfläche Komponente hinzufügen, um die folgenden Komponenten hinzuzufügen:

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

    Hinweis

    Wenn Sie die Komponente AR Anchor Manager (Script) hinzufügen, wird die Komponente XR Origin automatisch hinzugefügt, da sie von der Komponente AR Anchor Manager (Script) benötigt wird.

    Screenshot of adding AR Anchor Manager.

Konfigurieren der Schaltflächen zum Steuern der Szene

In diesem Abschnitt fügen Sie der Szene Skripts hinzu, um Schaltflächenereignisse zu erstellen, mit denen das grundlegende Verhalten von lokalen Ankern und Raumankern in einer App dargestellt wird.

  1. Erweitern Sie im Bereich Hierarchie das Objekt ButtonParent und wählen Sie das erste untergeordnete Objekt mit dem Namen StartAzureSession aus.

  2. Navigieren Sie im Bereich Inspector zur Komponente Pressable Button. Sie enthält ein On Clicked()-Ereignis.

  3. Wählen Sie in der Hierarchie das Objekt ParentAnchor aus, ziehen Sie es in den Bereich Inspector, und legen Sie es im Feld Kein (Objekt) des On Clicked()-Ereignisses ab.

  4. Wählen Sie das Dropdownmenü Keine Funktion und dann AnchorModuleScript>StartAzureSession() aus. Diese Funktion wird ausgeführt, wenn das Ereignis ausgelöst wird.

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

  5. Wählen Sie im Bereich Hierarchie in der untergeordneten Liste ButtonParent die Option StopAzureSession aus.

  6. Navigieren Sie im Bereich Inspector zur Komponente Pressable Button.

  7. Wählen Sie in der Hierarchie das Objekt ParentAnchor aus, ziehen Sie es in den Bereich Inspector und legen Sie es im Feld Kein (Objekt) des Ereignisses On Clicked() ab.

  8. Wählen Sie das Dropdownmenü Keine Funktion und dann AnchorModuleScript>StopAzureSession() aus.

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

  9. Wählen Sie im Bereich Hierarchie in der untergeordneten Liste ButtonParent die Option CreateAzureAnchor aus.

  10. Navigieren Sie im Bereich Inspector zur Komponente Pressable Button.

  11. Wählen Sie in der Hierarchie das Objekt ParentAnchor aus, ziehen Sie es in den Bereich Inspector und legen Sie es im Feld Kein (Objekt) des Ereignisses On Clicked() ab.

  12. Wählen Sie das Dropdownmenü Keine Funktion und dann AnchorModuleScript>CreateAzureAnchor aus.

  13. Wählen Sie das Objekt ParentAnchor erneut aus, ziehen Sie es in den Bereich Inspector und fügen Sie es in den Parameter von AnchorModuleScript.CreateAzureAnchor ein.

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

  14. Wählen Sie im Bereich Hierarchie in der untergeordneten Liste ButtonParent die Option RemoveLocalAnchor aus.

  15. Navigieren Sie im Bereich Inspector zur Komponente Pressable Button.

  16. Wählen Sie in der Hierarchie das Objekt ParentAnchor aus, ziehen Sie es in den Bereich Inspector und legen Sie es im Feld Kein (Objekt) des Ereignisses On Clicked() ab.

  17. Wählen Sie das Dropdownmenü Keine Funktion und dann AnchorModuleScript>RemoveLocalAnchor aus.

  18. Wählen Sie das Objekt ParentAnchor erneut aus, ziehen Sie es in den Bereich Inspector und fügen Sie es in den Parameter von AnchorModuleScript.RemoveLocalAnchor ein.

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

  19. Wählen Sie im Bereich Hierarchie in der untergeordneten Liste ButtonParent die Option FindAzureAnchor aus.

  20. Navigieren Sie im Bereich Inspector zur Komponente Pressable Button.

  21. Wählen Sie in der Hierarchie das Objekt ParentAnchor aus, ziehen Sie es in den Bereich Inspector und legen Sie es im Feld Kein (Objekt) des Ereignisses On Clicked() ab.

  22. Wählen Sie das Dropdownmenü Keine Funktion und dann AnchorModuleScript>FindAzureAnchor aus.

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

  23. Wählen Sie im Bereich Hierarchie in der untergeordneten Liste ButtonParent die Option DeleteAzureAnchor aus.

  24. Navigieren Sie im Bereich Inspector zur Komponente Pressable Button.

  25. Wählen Sie in der Hierarchie das Objekt ParentAnchor aus, ziehen Sie es in den Bereich Inspector und legen Sie es im Feld Kein (Objekt) des Ereignisses On Clicked() ab.

  26. Wählen Sie das Dropdownmenü Keine Funktion und dann AnchorModuleScript>DeleteAzureAnchor aus.

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

Verbinden der Szene mit der Azure-Ressource

  1. Wählen Sie im Bereich Hierarchie das Objekt ParentAnchor aus.

  2. Suchen Sie im Bereich Inspektor die Komponente Spatial Anchor Manager (Script).

  3. Konfigurieren Sie den Abschnitt Anmeldeinformationen mit den Anmeldeinformationen des Azure Spatial Anchors-Kontos, das Sie im Rahmen dieser Tutorialreihe erstellt haben:

    • Geben Sie im Feld Spatial Anchors Account ID (ID des Spatial Anchors-Kontos) die Konto-ID Ihres Azure Spatial Anchors-Kontos ein.
    • Geben Sie im Feld Spatial Anchors Account Key (Spatial Anchors-Kontoschlüssel) den primären oder sekundären Zugriffsschlüsselwert Ihres Azure Spatial Anchors-Kontos aus.
    • Geben Sie im Feld Spatial Anchors Account Domain (Spatial Anchors-Kontodomäne) den Kontodomänenwert Ihres Azure Spatial Anchors-Kontos aus.

    Screenshot of Unity with the Spatial Anchor Manager configured.

Testen der grundlegenden Verhaltensweisen von Azure Spatial Anchors

Azure Spatial Anchors kann nicht in Unity ausgeführt werden. Sie müssen das Projekt erstellen und die App auf Ihrem Gerät bereitstellen, um die Azure Spatial Anchors-Funktionalität zu testen.

Tipp

Im Artikel Erstellen der Anwendung für HoloLens 2 ab dem Abschnitt (Optional) Erstellen und Bereitstellen der Anwendung können Sie noch einmal nachlesen, wie Sie Ihr Unity-Projekt für HoloLens 2 bereitstellen.

Wenn die App auf Ihrem Gerät ausgeführt wird, befolgen Sie die Anweisungen auf dem Bildschirm, die im Bereich Azure Spatial Anchor Tutorial Instructions (Azure Spatial Anchors-Anweisungen) angezeigt werden:

  1. Bewegen Sie den Cube an einen anderen Ort.
  2. Starten Sie eine Azure-Sitzung.
  3. Erstellen Sie an der Position des Cubes einen Azure-Anker.
  4. Beenden Sie die Azure-Sitzung.
  5. Entfernen Sie den lokalen Anker, damit der*die Benutzer*in den Cube verschieben kann.
  6. Verschieben Sie den Cube an eine andere Stelle.
  7. Starten Sie eine Azure-Sitzung.
  8. Suchen Sie den Azure-Anker, um den Cube an die Position aus Schritt 3 zu bewegen.
  9. Löschen Sie den Azure-Anker.
  10. Beenden Sie die Azure-Sitzung.

Achtung

Azure Spatial Anchors speichert und lädt die Ankerdaten über das Internet. Stellen Sie sicher, dass Ihr Gerät mit dem Internet verbunden ist.