Samouczek: udostępnianie kotwic przestrzennych między sesjami i urządzeniami

Azure Spatial Anchors to międzyplatformowa usługa deweloperska, za pomocą której można tworzyć środowiska rzeczywistości mieszanej przy użyciu obiektów, które utrwalają ich lokalizację na różnych urządzeniach w czasie.

W tym samouczku użyjesz usługi Azure Spatial Anchors , aby utworzyć kotwice podczas jednej sesji, a następnie zlokalizować je na tym samym urządzeniu lub innym. Te same kotwice mogą również znajdować się na wielu urządzeniach w tym samym miejscu i jednocześnie.

Animation showing spatial anchors that are created with a mobile device and used with a different device over the course of days.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Wdróż aplikację internetową ASP.NET Core na platformie Azure, która umożliwia udostępnianie kotwic i przechowywanie kotwic w pamięci przez określony okres czasu.
  • Skonfiguruj scenę AzureSpatialAnchorsLocalSharedDemo w przykładzie aparatu Unity z naszych przewodników Szybki start, aby skorzystać z aplikacji internetowej Sharing Anchors.
  • Wdróż i uruchom kotwice na co najmniej jednym urządzeniu.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

Przed rozpoczęciem tego samouczka upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Przeczytaj omówienie usługi Azure Spatial Anchors.
  • Ukończ jeden z 5-minutowych przewodników Szybki start.

    Uwaga

    Przewodniki Szybki start dla systemów Android/NDK i iOS/Swift nie przedstawiają obecnie możliwości opisanych w tym samouczku.

  • Podstawowa wiedza na temat jednego z następujących elementów:
    • ArCore , jeśli używasz systemu Android.
    • ArKit , jeśli używasz systemu iOS.
  • Komputer z systemem Windows z programem Visual Studio 2019 lub nowszym oraz pakietem roboczym tworzenia aplikacji internetowych i ASP.NET.
  • Zestaw .NET Core 3.1 SDK.
  • Co najmniej jedno z następujących urządzeń, na których można wdrożyć i uruchomić aplikację: HoloLens, HoloLens 2, iOS lub Android.

Uwaga

W tym samouczku będziesz używać aparatu Unity i aplikacji internetowej platformy ASP.NET Core, ale w tym samouczku przedstawiono tylko przykład udostępniania identyfikatorów usługi Azure Spatial Anchors na innych urządzeniach. Aby osiągnąć ten sam cel, można użyć innych języków i technologii zaplecza.

Tworzenie zasobu usługi Spatial Anchors

Przejdź do portalu Azure Portal.

W okienku po lewej stronie wybierz pozycję Utwórz zasób.

Użyj pola wyszukiwania, aby wyszukać usługi Spatial Anchors.

Screenshot showing the results of a search for Spatial Anchors.

Wybierz pozycję Zakotwiczenia przestrzenne, a następnie wybierz pozycję Utwórz.

W okienku Konto usługi Spatial Anchors wykonaj następujące czynności:

  • Wprowadź unikatową nazwę zasobu przy użyciu zwykłych znaków alfanumerycznych.

  • Wybierz subskrypcję, do której chcesz dołączyć zasób.

  • Utwórz grupę zasobów, wybierając pozycję Utwórz nową. Nadaj jej nazwę myResourceGroup, a następnie wybierz przycisk OK.

    Grupa zasobów to logiczny kontener, w którym są wdrażane i zarządzane zasoby platformy Azure, takie jak aplikacje internetowe, bazy danych i konta magazynu. Na przykład można później usunąć całą grupę zasobów w jednym prostym kroku.

  • Wybierz lokalizację (region), w której ma być umieszczany zasób.

  • Wybierz pozycję Utwórz , aby rozpocząć tworzenie zasobu.

Screenshot of the Spatial Anchors pane for creating a resource.

Po utworzeniu zasobu witryna Azure Portal pokazuje, że wdrożenie zostało ukończone.

Screenshot showing that the resource deployment is complete.

Wybierz pozycję Przejdź do zasobu. Teraz możesz wyświetlić właściwości zasobu.

Skopiuj wartość identyfikatora konta zasobu do edytora tekstów do późniejszego użycia.

Screenshot of the resource properties pane.

Skopiuj również wartość domeny konta zasobu do edytora tekstów do późniejszego użycia.

Screenshot showing the resource's account domain value.

W obszarze Ustawienia wybierz pozycję Klucz dostępu. Skopiuj wartość Klucza podstawowego, Klucz konta, do edytora tekstów do późniejszego użycia.

Screenshot of the Keys pane for the account.

Pobieranie przykładowego projektu i importowania zestawu SDK

Klonowanie repozytorium przykładów

Sklonuj repozytorium przykładów, uruchamiając następujące polecenia:

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

Importowanie zestawu ASA SDK

Postępuj zgodnie z instrukcjami dostępnymi tutaj , aby pobrać i zaimportować pakiety zestawu ASA SDK wymagane dla platformy HoloLens.

Wdrażanie usługi Sharing Anchors

Uwaga

W tym samouczku będziemy używać warstwy Bezpłatna usługi aplikacja systemu Azure Service. Warstwa Bezpłatna zostanie przekroczona po upływie 20 minut braku aktywności i zresetowaniu pamięci podręcznej.

Otwórz program Visual Studio, a następnie otwórz projekt w folderze Sharing\SharingServiceSample .

Otwieranie kreatora publikowania

W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt SharingService, a następnie wybierz pozycję Publikuj....

Zostanie uruchomiony Kreator publikowania.

  1. Wybierz pozycję Docelowa platforma Azure>Dalej.
  2. Wybierz pozycję Określona usługa aplikacja systemu Azure docelowa (Windows)>Dalej
  3. Zaloguj się w witrynie Azure Portal.
  4. Wybierz zielony znak "+", aby utworzyć usługę aplikacja systemu Azure

Ustawienia usługi aplikacji

Ustawienie Sugerowana wartość opis
Nazwa/nazwisko myASASharingService Nadaj usłudze unikatową nazwę
Subscription Name Wybieranie preferowanej subskrypcji platformy Azure
Grupa zasobów myResourceGroup lub wybierz istniejącą grupę Grupa zasobów to logiczny kontener, w którym są wdrażane i zarządzane zasoby platformy Azure, takie jak aplikacje internetowe, bazy danych i konta magazynu. Na przykład można później usunąć całą grupę zasobów w jednym prostym kroku.
Plan hostingu Wybierz pozycję Nowy... i zobacz tabelę poniżej Plan usługi App Service określa lokalizację, rozmiar i funkcje farmy serwerów sieci Web, która jest hostem aplikacji. Możesz zaoszczędzić pieniądze podczas hostowania wielu aplikacji, konfigurując aplikacje internetowe w celu udostępnienia jednego planu usługi App Service. Definiowanie planów usługi App Service:
  • Region (na przykład: Europa Północna, wschodnie stany USA, Azja Południowo-Wschodnia)
  • Rozmiar wystąpienia (mały, średni, duży)
  • Skala (od 1 do 20 wystąpień)
  • Warstwa cenowa (Bezpłatna, Współdzielona, Podstawowa, Standardowa, Premium)

Ustawienia planu hostingu

Ustawienie Sugerowana wartość opis
Plan hostingu MySharingServicePlan Nadaj planowi hostingu unikatową nazwę
Lokalizacja Zachodnie stany USA Centrum danych, w którym hostowana jest aplikacja internetowa. Wybierz lokalizację znajdującą się najbliżej lokalizacji fizycznej, która będzie używana przez aplikację
Rozmiar Bezpłatne Warstwa cenowa określająca funkcje hostingu
  1. Wybierz pozycję Utwórz , aby utworzyć usługę App Service
  2. Po utworzeniu usługi App Service wybierz ją na liście "Wystąpienia usługi App Service", a następnie wybierz pozycję Zakończ
  3. Na karcie SharingService: Publish (Udostępnianie usługi: Publikowanie) wybierz pozycję Publish (Publikuj)

Po opublikowaniu aplikacji internetowej ASP.NET Core na platformie Azure możesz przejść do https://<your_app_name>.azurewebsites.net witryny lub kliknąć link obok pozycji Witryna: na karcie UdostępnianieUsługi: publikowanie . Skopiuj ten adres URL do edytora tekstów do późniejszego użycia.

Screenshot of a published ASP.NET web app in Azure.

Konfigurowanie i wdrażanie przykładowej aplikacji

Otwórz projekt

W środowisku Unity otwórz projekt w folderze Unity . Aparat Unity może wyświetlić monit o różnicę między wersją projektu a wersją zainstalowaną na maszynie. To ostrzeżenie jest w porządku, o ile wersja edytora aparatu Unity jest nowsza niż ta, z którą projekt został utworzony. Jeśli wersja jest nowsza, wybierz pozycję Kontynuuj. Jeśli wersja jest starsza niż ta, której potrzebuje projekt, wybierz pozycję Zamknij i uaktualnij edytor aparatu Unity.

Screenshot of the Unity pane.

Konfigurowanie Ustawienia kompilacji

Otwórz obszar Build Settings (Ustawienia kompilacji), wybierając pozycje File (Plik)>Build Settings (Ustawienia kompilacji).

W sekcji Platform (Platforma) wybierz pozycję Universal Windows Platform (Platforma uniwersalna systemu Windows). Zmień urządzenie docelowe na HoloLens.

Wybierz pozycję Switch Platform (Przełącz platformę), aby zmienić platformę na Universal Windows Platform (Platforma uniwersalna systemu Windows). Aparat Unity może monitować o zainstalowanie składników obsługi platformy UWP, jeśli ich brakuje.

Screenshot of the Unity Build Settings pane - HoloLens

Zamknij okno Build Settings (Ustawienia kompilacji).

Konfigurowanie informacji o koncie

Następnym krokiem jest skonfigurowanie aplikacji do korzystania z informacji o koncie. Wartości Klucz konta, Identyfikator konta i Domena konta skopiowano wcześniej do edytora tekstów w sekcji "Tworzenie zasobu usługi Spatial Anchors".

W okienku Projekt przejdź do strony Assets\AzureSpatialAnchors.SDK\Resources.

Wybierz pozycję SpatialAnchorConfig. W okienku Inspektor wprowadź jako wartość klucz konta usługi Spatial Anchors, Account ID wartość jako wartość identyfikatora konta usługi Spatial Anchors i Account Domain jako wartość domeny konta usługi Spatial Anchors.Account Key

Otwórz scenę o nazwie AzureSpatialAnchorsLocalSharedDemo znalezioną w Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo pliku, klikając ją dwukrotnie w okienku projektu

W okienku Projekt przejdź do strony Assets\AzureSpatialAnchors.Examples\Resources.

Wybierz pozycję SpatialAnchorSamplesConfig. Następnie w okienku Inspector (Inspektor) wprowadź Sharing Anchors Service adres URL (z wdrożenia platformy Azure aplikacji internetowej ASP.NET) jako wartość .Base Sharing Url Dołącz adres URL za pomocą /swagger/api/anchorspolecenia . Powinien wyglądać następująco: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Zapisz scenę, wybierając pozycje File (Plik)>Save (Zapisz).

Eksportowanie i wdrażanie aplikacji HoloLens

Otwórz obszar Build Settings (Ustawienia kompilacji), wybierając pozycje File (Plik)>Build Settings (Ustawienia kompilacji).

W obszarze Sceny w kompilacji upewnij się, że obok wszystkich scen jest znacznik wyboru.

Wybierz pozycję Kompilacja. W oknie dialogowym wybierz folder, w którym chcesz wyeksportować projekt programu Visual Studio HoloLens.

Po zakończeniu eksportowania zostanie wyświetlony folder zawierający wyeksportowany projekt HoloLens.

W folderze kliknij dwukrotnie plik HelloAR U3D.sln , aby otworzyć projekt w programie Visual Studio.

Zmień konfigurację rozwiązania na Wydanie, zmień platformęrozwiązania na x86, a następnie wybierz pozycję Urządzenie z opcji docelowych wdrożenia.

Jeśli używasz urządzenia HoloLens 2, użyj arm64 jako platformy rozwiązań zamiast x86.

Visual Studio configuration

Włącz urządzenie HoloLens, zaloguj się i podłącz urządzenie do komputera przy użyciu kabla USB.

Wybierz pozycje Debugowanie>Rozpocznij debugowanie, aby wdrożyć swoją aplikację i rozpocząć debugowanie.

Uruchamianie aplikacji

W aplikacji wybierz pozycję LocalSharedDemo za pomocą strzałek, a następnie naciśnij przycisk Przejdź! , aby uruchomić pokaz. Postępuj zgodnie z instrukcjami, aby umieścić i odwołać kotwicę.

Za pomocą polecenia Utwórz i udostępnij kotwicę możesz utworzyć kotwicę i zapisać ją w usłudze udostępniania. W zamian otrzymasz identyfikator, którego można użyć do pobrania go z usługi udostępniania. Następnie możesz uruchomić drugi scenariusz zlokalizuj udostępnioną kotwicę z urządzenia lub innego.

Za pomocą polecenia Znajdź udostępnioną kotwicę można zlokalizować wcześniej udostępnione kotwice, wprowadzając identyfikator wymieniony wcześniej. Po wybraniu scenariusza aplikacja przeprowadzi Cię przez dalsze instrukcje. Na przykład zostanie wyświetlony monit o przeniesienie urządzenia w celu zebrania informacji o środowisku. Później umieścisz kotwicę na świecie, zaczekaj na zapisanie, rozpocznij nową sesję, a następnie zlokalizuj ją.

Czyszczenie zasobów

W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.

W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Grupy zasobów. Następnie na stronie Grupy zasobów wybierz pozycję myResourceGroup.

Na stronie myResourceGroup upewnij się, że wymienione zasoby są tymi, które chcesz usunąć.

Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, aby potwierdzić, a następnie wybierz pozycję Usuń.

Następne kroki

W tym samouczku wdrożono aplikację internetową ASP.NET Core na platformie Azure oraz skonfigurowano i wdrożono aplikację aparatu Unity. Utworzono zakotwiczenia przestrzenne z aplikacją i udostępniono je innym urządzeniom przy użyciu aplikacji internetowej ASP.NET Core.

Możesz ulepszyć aplikację internetową ASP.NET Core, aby używała usługi Azure Cosmos DB do utrwalania magazynu udostępnionych identyfikatorów zakotwiczeń przestrzennych. Dodając obsługę usługi Azure Cosmos DB, możesz mieć już utworzoną kotwicę ASP.NET Core. Następnie przy użyciu identyfikatora kotwicy przechowywanego w aplikacji internetowej możesz zwrócić aplikację kilka dni później, aby ponownie zlokalizować kotwicę.