Ćwiczenie — rozpoczynanie pracy z usługą Azure Spatial Anchors

Ukończone

W tej lekcji zapoznasz się z krokami wymaganymi do wykonania następujących czynności:

  • Uruchom i zatrzymaj sesję usługi Azure Spatial Anchors.
  • Tworzenie, przekazywanie i pobieranie kotwic przestrzennych na jednym urządzeniu.

W wyniku ukończenia wymagań wstępnych dla tego modułu nauki należy mieć już projekt Unity, który został skonfigurowany z OpenXR i MRTK3. Otwórz ten projekt, a następnie sprawdź, czy masz wybrane odpowiednie możliwości:

  1. Przejdź do Edytuj ustawienia projektu >> Player > Ustawienia publikowania.
  2. Przewiń w dół do sekcji Capabilities, a następnie wybierz następujące elementy, jeśli nie zostały jeszcze wybrane:
  • PercepcjaPrzestrzenna
  • InternetClient
  • PrivateNetworkClientServer

Po zakończeniu zamknij okno Ustawienia projektu i przejdź do następnych kroków.

Zainstaluj wbudowane pakiety Unity i zaimportuj zasoby samouczka

  1. Na pasku menu wybierz pozycję Okno>Menedżer pakietów.

  2. Sprawdź, czy zainstalowano program AR Foundation w wersji 5.0.3 lub najnowszej.

    Zrzut ekranu przedstawiający wybór opcji weryfikacji wersji programu AR Foundation dla Menedżera pakietów.

Importowanie zasobów samouczka

  1. Dodaj zestaw SDK Azure Spatial Anchors w wersji 2.12 lub nowszej do swojego projektu, wykonując czynności opisane w tym samouczku.

  2. Pobierz i zaimportuj następujące pakiety niestandardowe Unity w następującej kolejności:

    Notatka

    Importowanie zarówno narzędzi MRTK3, jak i ASA może powodować błędy, gdy wersja pakietu ARFoundation nie jest zgodna z zaimportowaną wersją systemu ARSubsystems. Dopóki nie zostanie to naprawione, można ręcznie dodać plik com.unity.xr.arsubsystems w wersji 5.0.2 do menedżera pakietów projektu jako obejście.

    Zostanie wyświetlone ostrzeżenie, że system ARSubsystems został przestarzały, ale możesz go zignorować. Jeśli zobaczysz jakiekolwiek ostrzeżenia CS0618 z komunikatem, że "WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)" jest przestarzałe, możesz je również zignorować.

Przygotowywanie sceny

W tej części przygotujesz scenę, dodając niektóre prefaby samouczka.

  1. W okienku Project przejdź do folderu Assets>MRTK.Tutorials.AzureSpatialAnchors>Prefabs, a następnie przeciągnij następujące Prefabs do okienka Hierarchy, aby dodać je do sceny:

    • ButtonParent prefabs
    • Instrukcje prefabrykaty
    • ParentAnchor prefabs
    • Zmień wartości Tranform/ Position elementu ButtonParent na następujące wartości: X = 0.0, Y = 1.6, Z = 0.6
    • Zmień wartości Transform/Position instrukcji na następujące: X = -0.8, Y = 2.0, Z = 2.0
    • Zmień wartości Transform/ Position klasy ParentAnchor na następujące wartości: X = -0.3, Y = 1.5, Z = 0.6 Zrzut ekranu przedstawiający prefaby dodane do panelu Hierarchia.

    Napiwek

    Jeśli znajdziesz duże ikony w scenie (na przykład duże ikony "T") rozpraszające uwagę, możesz je ukryć, otwierając listę rozwijaną Gizmos i wyłączając wyświetlanie ikon dla poszczególnych obiektów.

  2. W oknie Hierarchii wybierz pozycję MRTK XR Rig>Offset Kamery.

  3. W okienku Inspektor użyj przycisku Dodaj komponent, aby dodać następujące składniki:

    • Menedżer Kotwicy AR (Skrypt)
    • DisableDiagnosticsSystem (skrypt)

    Notatka

    Po dodaniu składnika AR Anchor Manager (Script), komponent XR Origin jest automatycznie dodawany, ponieważ składnik AR Anchor Manager (Script) go wymaga.

    Zrzut ekranu przedstawiający dodawanie menedżera kotwicy AR.

Konfigurowanie przycisków do obsługi sceny

W tej sekcji dodasz skrypty do sceny, aby utworzyć serię zdarzeń przycisków, które pokazują podstawy działania kotwic lokalnych i kotwic przestrzennych w aplikacji.

  1. W okienku hierarchii rozwiń obiekt ButtonParent i wybierz pierwszy obiekt podrzędny, StartAzureSession.

  2. W okienku inspektora przejdź do składnika Naciśnięcie przycisku. Ma ono zdarzenie OnClicked ().

  3. W hierarchii wybierz obiekt ParentAnchor, a następnie przeciągnij go do Inspector i upuść w polu None (Obiekt) zdarzenia On Clicked().

  4. Wybierz listę rozwijaną Brak funkcji, a potem wybierz AnchorModuleScript>StartAzureSession (). Ta funkcja zostanie wykonana po wyzwoleniu zdarzenia.

    Zrzut ekranu przedstawiający środowisko Unity ze skonfigurowanym zdarzeniem OnClick przycisku StartAzureSession.

  5. W okienku hierarchii na liście podrzędnej przycisków wybierz ZatrzymajAzureSession

  6. W panelu Inspektora przejdź do składnika Przycisk naciśnięcia.

  7. W hierarchii wybierz obiekt ParentAnchor, a następnie przeciągnij go do inspektora i upuść go w zdarzeniu On Clicked() w polu None (Object).

  8. Wybierz z listy rozwijanej Brak funkcji, a następnie wybierz AnchorModuleScript>StopAzureSession ().

    zrzut ekranu aparatu Unity ze skonfigurowanym zdarzeniem OnClick przycisku StopAzureSession.

  9. W okienku hierarchii na liście podrzędnej Parent podrzędne wybierz pozycję UtwórzAzureAnchor.

  10. W okienku inspektora przejdź do składnika Przycisk naciśnialny.

  11. W hierarchii wybierz obiekt ParentAnchor, a następnie przeciągnij go do inspektora i upuść w polu zdarzenia Po kliknięciu()Brak (obiekt).

  12. Wybierz z listy rozwijanej Brak funkcji i wybierz AnchorModuleScript>CreateAzureAnchor.

  13. Ponownie wybierz obiekt ParentAnchor, a następnie przeciągnij go do Inspector i upuść go w parametrze AnchorModuleScript.CreateAzureAnchor.

    zrzut ekranu aplikacji Unity ze skonfigurowanym zdarzeniem OnClick przycisku CreateAzureAnchor.

  14. W okienku hierarchii na liście podrzędnej parent wybierz pozycję RemoveLocalAnchor.

  15. W okienku inspektora przejdź do składnika Przycisk naciskany.

  16. W hierarchii wybierz obiekt ParentAnchor, a następnie przeciągnij go do Inspektora i upuść w polu zdarzenia Po Kliknięciu() Brak (obiekt) .

  17. Wybierz listę rozwijaną Brak funkcji, a następnie wybierz AnchorModuleScript i>RemoveLocalAnchor.

  18. Ponownie wybierz obiekt ParentAnchor, a następnie przeciągnij go do inspektora i upuść go w parametrze AnchorModuleScript.RemoveLocalAnchor.

    zrzut ekranu programu Unity ze skonfigurowanym zdarzeniem OnClick przycisku RemoveLocalAnchor.

  19. W panelu Hierarchii, na liście podrzędnej dziecka ButtonParent, wybierz ZnajdźAzureAnchor.

  20. W okienku inspektora przejdź do składnika Naciśnięcie przycisku.

  21. W hierarchiiwybierz obiekt ParentAnchor, a następnie przeciągnij go do inspektora i upuść go w zdarzeniu On Clicked() w polu None (Object).

  22. Wybierz z listy rozwijanej No Function, a następnie wybierz AnchorModuleScript>FindAzureAnchor.

    zrzut ekranu interfejsu Unity ze skonfigurowanym zdarzeniem OnClick przycisku ZnajdźAzureAnchor.

  23. W okienku hierarchii na liście podrzędnej przyciskuj UsuńAzureAnchor.

  24. W okienku Inspektora przejdź do składnika Przycisk naciśnięcia.

  25. W hierarchii wybierz obiekt ParentAnchor, a następnie przeciągnij go do inspektora i upuść go w zdarzeniu Po kliknięciu() w polu Brak (obiekt).

  26. Wybierz listę rozwijaną Brak funkcji, a następnie wybierz AnchorModuleScript>UsuńAzureAnchor.

    zrzut ekranu z Unity ze skonfigurowanym zdarzeniem OnClick przycisku UsuńAzureAnchor.

Łączenie sceny z zasobem platformy Azure

  1. W okienku hierarchii wybierz obiekt ParentAnchor.

  2. W okienku Inspector znajdź składnik Spatial Anchor Manager (Script).

  3. Skonfiguruj sekcję Credentials przy użyciu poświadczeń z konta usługi Azure Spatial Anchors utworzonego w ramach wymagań wstępnych dla tej serii samouczków:

    • W polu Identyfikator konta Spatial Anchors wklej wartość identyfikatora konta z konta Azure Spatial Anchors.
    • W polu Klucz konta usługi Spatial Anchors wklej wartość klucza dostępu podstawowego lub pomocniczego z konta usługi Azure Spatial Anchors.
    • W polu Domena konta usługi Spatial Anchors wklej wartość domeny konta z konta usługi Azure Spatial Anchors.

    zrzut ekranu Unity ze skonfigurowanym menedżerem Spatial Anchor Manager.

Wypróbuj podstawowe zachowania usługi Azure Spatial Anchors

Usługa Azure Spatial Anchors nie może działać w środowisku Unity. Aby przetestować funkcje usługi Azure Spatial Anchors, należy skompilować projekt i wdrożyć aplikację na urządzeniu.

Napiwek

Aby przypomnieć sobie, jak stworzyć i wdrożyć projekt Unity na HoloLens 2, zobacz artykuł Building your application to HoloLens 2, rozpoczynając od sekcji (Optional) Build and deploy the application.

Gdy aplikacja działa na Twoim urządzeniu, postępuj zgodnie z instrukcjami wyświetlanymi na panelu Azure Spatial Anchor Tutorial Instructions:

  1. Przenieś moduł do innej lokalizacji.
  2. Rozpocznij sesję platformy Azure.
  3. Utwórz kotwicę platformy Azure w lokalizacji modułu.
  4. Zatrzymaj sesję platformy Azure.
  5. Usuń kotwicę lokalną, aby umożliwić użytkownikowi przesunięcie kostki.
  6. Przenieś moduł do innego miejsca.
  7. Rozpocznij sesję platformy Azure.
  8. Znajdź kotwicę platformy Azure, aby umieścić moduł w lokalizacji z kroku 3.
  9. Usuń kotwicę platformy Azure.
  10. Zatrzymaj sesję platformy Azure.

Ostrożność

Usługa Azure Spatial Anchors używa Internetu do zapisywania i ładowania danych kotwic. Upewnij się, że urządzenie jest połączone z Internetem.