Zelfstudie: Ruimtelijke ankers delen tussen sessies en apparaten

Azure Spatial Anchors is een platformoverstijgende ontwikkelaarsservice waarmee u mixed reality-ervaringen kunt maken met behulp van objecten die hun locatie in de loop van de tijd op meerdere apparaten behouden.

In deze zelfstudie gebruikt u Azure Spatial Anchors om tijdens één sessie ankers te maken en deze vervolgens op hetzelfde apparaat of op een ander apparaat terug te vinden. Dezelfde ankers kunnen ook worden teruggevonden door meerdere apparaten op dezelfde plaats op hetzelfde moment.

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

In deze zelfstudie leert u het volgende:

  • Implementeer een ASP.NET Core-web-app in Azure die u kunt gebruiken om ankers te delen en de ankers in het geheugen op te slaan voor een opgegeven periode.
  • Configureer de scène AzureSpatialAnchorsLocalSharedDemo binnen het Unity-voorbeeld van onze quickstarts om te profiteren van de web-app Sharing Anchors.
  • Implementeer de ankers en voer deze uit op een of meer apparaten.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

Voordat u met deze zelfstudie begint, moet aan de volgende vereisten worden voldaan:

  • U hebt Overzicht Azure Spatial Anchors doorgelezen.
  • U hebt een van de Quickstarts van 5 minuten voltooid.

    Notitie

    In de quickstarts voor Android/NDK en iOS/SWIFT worden de functies die in deze zelfstudie worden uitgelegd, momenteel niet getoond.

  • Een basiskennis van een van de volgende:
    • ARCore als u Android gebruikt.
    • ARKit als u iOS gebruikt.
  • Een Windows-computer met Visual Studio 2019 of hoger en de werkbelasting ASP.NET- en webontwikkeling.
  • De .NET Core 3.1-SDK.
  • Een of meer van de volgende apparaten waarop een app kan worden geïmplementeerd en uitgevoerd: HoloLens, HoloLens 2, iOS of Android.

Notitie

U zult in deze zelfstudie gebruikmaken van Unity en een ASP.NET Core-web-app, maar deze aanpak is alleen een voorbeeld om te laten zien hoe het delen van Azure Spatial Anchor-id's naar andere apparaten werkt. U kunt andere talen en back-endtechnologieën gebruiken om hetzelfde doel te bereiken.

Een Spatial Anchors-resource maken

Ga naar de Azure-portal.

Selecteer Een resource maken in het linkerdeelvenster.

Gebruik het zoekvak om te zoeken naar Spatial Anchors.

Screenshot showing the results of a search for Spatial Anchors.

Selecteer Spatial Anchors en vervolgens Maken.

Doe in het deelvenster Spatial Anchors-account het volgende:

  • Voer een unieke resourcenaam in met gewone alfanumerieke tekens.

  • Selecteer het abonnement waaraan u de resource wilt koppelen.

  • Maak een resourcegroep door Nieuwe maken te selecteren. Noem deze myResourceGroup en selecteer OK.

    Een resourcegroep is een logische container waarin Azure-resources, zoals web-apps, databases en opslagaccounts, worden geïmplementeerd en beheerd. U kunt bijvoorbeeld later de hele resourcegroep in één stap verwijderen.

  • Selecteer de locatie (regio) waarin u de resource wilt plaatsen.

  • Selecteer Maken om de resource te maken.

Screenshot of the Spatial Anchors pane for creating a resource.

Nadat de resource is gemaakt, ziet u in de Azure-portal dat uw implementatie is voltooid.

Screenshot showing that the resource deployment is complete.

Selecteer Naar resource. Nu kunt u de resource-eigenschappen bekijken.

Kopieer de waarde bij Account-id van de resource naar een teksteditor om later te gebruiken.

Screenshot of the resource properties pane.

Kopieer ook de waarde bij Accountdomein van de resource naar een teksteditor om later te gebruiken.

Screenshot showing the resource's account domain value.

Selecteer Toegangssleutel onder Instellingen. Kopieer de waarde bij Primaire sleutel, Accountsleutel, naar een teksteditor om later te gebruiken.

Screenshot of the Keys pane for the account.

Het voorbeeldproject downloaden en SDK importeren

Opslagplaats voor kloonvoorbeelden

Voer de volgende opdrachten uit om de opslagplaats met voorbeelden te klonen:

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

ASA SDK importeren

Volg de instructies hier om de ASA SDK-pakketten te downloaden en te importeren die vereist zijn voor het HoloLens-platform.

De Sharing Anchor-service implementeren

Notitie

In deze zelfstudie gebruiken we de gratis laag van de Azure-app Service. De gratis laag treedt op na 20 minuten inactiviteit en stelt de geheugencache opnieuw in.

Open Visual Studio en open vervolgens het project in de map Sharing\SharingServiceSample.

Open de publicatiewizard

Klik in Solution Explorer met de rechtermuisknop op het project SharingService en selecteer Publiceren....

De publicatiewizard start.

  1. Selecteer Vervolgens Doel-Azure.>
  2. Specifieke doel-Azure-app-service (Windows)>Volgende selecteren
  3. Meld u aan bij de Azure-portal.
  4. Selecteer het groene '+' om een Azure-app-service te maken

Instellingen van de app-service

Instelling Voorgestelde waarde Omschrijving
Naam myASASharingService Geef uw service een unieke naam
Subscription Name Selecteer uw favoriete Azure-abonnement
Resourcegroep myResourceGroup of selecteer een bestaande Een resourcegroep is een logische container waarin Azure-resources, zoals web-apps, databases en opslagaccounts, worden geïmplementeerd en beheerd. U kunt bijvoorbeeld later de hele resourcegroep in één stap verwijderen.
Hostingabonnement Selecteer Nieuw... en zie de onderstaande tabel Een App Service-plan geeft de locatie, de grootte en de functies van de webserverfarm aan die als host fungeert voor uw app. U kunt geld besparen wanneer u meerdere apps host door de web-apps te configureren om één App Service-plan te delen. App Service-plannen definiëren:
  • Regio (bijvoorbeeld: Europa - noord, VS - oost of Azië - zuidoost)
  • Exemplaargrootte (klein, normaal of groot)
  • Het schaalaanpassingsaantal (1 tot 20 exemplaren)
  • SKU (Free, Shared, Basic, Standard of Premium)

Hostingabonnement Instellingen

Instelling Voorgestelde waarde Beschrijving
Hostingabonnement MySharingServicePlan Geef uw hostingabonnement een unieke naam
Locatie VS - west Het datacenter waar de web-app wordt gehost. Kies een locatie die zich het dichtst bij de fysieke locatie bevindt die uw toepassing gaat gebruiken
Tekengrootte Beschikbaar De prijscategorie die de hosting-functies bepaalt
  1. Selecteer Maken om de App Service te maken
  2. Zodra de App Service is gemaakt, selecteert u deze in de lijst 'App Service-exemplaren' en selecteert u Voltooien
  3. Selecteer Publiceren op het tabblad SharingService: Publiceren

Zodra de ASP.NET Core-web-app is gepubliceerd naar Azure, kunt u naar https://<your_app_name>.azurewebsites.net de koppeling naast Site gaan of klikken: op het tabblad SharingService: Publiceren . Kopieer deze URL naar een teksteditor voor later gebruik.

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

De voorbeeld-app configureren en implementeren

Project openen

Open het project in Unity in de map Unity. Unity geeft mogelijk een melding weer over een verschil tussen de versie in het project en de versie die op uw computer is geïnstalleerd. Dit is in orde, zolang uw versie van Unity Editor nieuwer is dan de versie waarmee het project is gemaakt. Als uw versie nieuwer is, selecteert u Doorgaan. Als uw versie ouder is dan voor het project nodig is, selecteert u Afsluiten en werkt u Unity Editor bij.

Screenshot of the Unity pane.

Build-Instellingen instellen

Open Build Settings door File>Build Settings te selecteren.

in de sectie Platform selecteert u Universeel Windows-platform. Wijzig Doelapparaat in HoloLens.

Selecteer Switch Platform om het platform te wijzigen in Universeel Windows-platform. U kunt worden gevraagd UWP-ondersteuningsonderdelen te installeren als deze ontbreken.

Screenshot of the Unity Build Settings pane - HoloLens

Sluit het venster Build Settings.

De accountgegevens configureren

De volgende stap is om de app te configureren voor gebruik van uw accountgegevens. U hebt eerder de waarden accountsleutel, account-IDen accountdomein gekopieerd naar een teksteditor in de sectie "Een Spatial Anchors-resource maken".

Ga in het deelvenster Project naar Assets\AzureSpatialAnchors.SDK\Resources.

Selecteer SpatialAnchorConfig. Voer in het deelvenster Controle de Account Key in als de waarde voor Spatial Anchors-accountsleutel, de Account ID als de waarde voor Spatial Anchors-id en de Account Domain als de waarde voor Spatial Anchors-accountdomein.

Open de scène met de naam AzureSpatialAnchorsLocalSharedDemoAssets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo door erop te dubbelklikken in het projectvenster

Ga in het deelvenster Project naar Assets\AzureSpatialAnchors.Examples\Resources.

Selecteer SpatialAnchorSamplesConfig. Voer vervolgens in het deelvenster Inspector de Sharing Anchors Service URL (van de implementatie van uw ASP.NET-web-app in Azure) in als de waarde voor Base Sharing Url. Voeg de URL toe met /swagger/api/anchors. Dit ziet er als volgt uit: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Sla de scène op door Bestand>Opslaan te selecteren.

De HoloLens-toepassing exporteren en implementeren

Open Build Settings door File>Build Settings te selecteren.

Controleer onder Scènes in Build of er naast elke scène een selectievakje staat.

Selecteer Build. Selecteer in het dialoogvenster een map waarnaar het HoloLens Visual Studio-project kan worden geëxporteerd.

Als het exporteren is voltooid, wordt er een map weergegeven met het geëxporteerde HoloLens-project.

Dubbelklik in de map op HelloAR U3D.sln om het project in Visual Studio te openen.

Wijzig Solution Configuration in Release, wijzig het Solution Platform in x86 en selecteer Device uit de opties voor het implementatiedoel.

Als u HoloLens 2 gebruikt, gebruikt u ARM64 als het Solution Platform, in plaats van x86.

Visual Studio configuration

Schakel het HoloLens-apparaat in, meld u aan en sluit het apparaat aan op de pc via een USB-kabel.

Selecteer Debug>Start debugging om de app te implementeren en de foutopsporing te starten.

Uitvoeren van de app

Selecteer In de app LocalSharedDemo met behulp van de pijlen en druk vervolgens op de knop Go! om de demo uit te voeren. Volg de instructies om een anker te plaatsen en terug te halen.

Met Anker maken en delen kunt u een anker maken en die bewaren in uw deelapparaat. Als resultaat krijgt u er een id voor terug die u kunt gebruiken om hem op te halen uit het deelapparaat. Vervolgens kunt u het tweede scenario, Gedeeld anker zoeken, uitvoeren vanuit uw apparaat of een ander apparaat.

Met Gedeeld anker zoeken kunt u eerder gedeelde ankers zoeken door de eerder genoemde id in te voeren. Nadat u uw scenario hebt gekozen, leidt de app u door verdere instructies. U wordt bijvoorbeeld gevraagd om uw apparaat te verplaatsen om omgevingsinformatie te verzamelen. Later plaatst u een anker in de wereld, wacht u tot deze is opgeslagen, start u een nieuwe sessie en vervolgens zoekt u die.

Resources opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources in de toekomst waarschijnlijk niet nodig hebt, kunt u ze verwijderen door de resourcegroep te verwijderen.

Selecteer Resourcegroepen in het menu of op de beginpagina van de Azure-portal. Selecteer myResourceGroup op de pagina Resourcegroepen.

Controleer op de pagina myResourceGroup of de weergegeven resources de resources zijn die u wilt verwijderen.

Selecteer Resourcegroep verwijderen, typ myResourceGroup in het tekstvak om dit te bevestigen en selecteer Verwijderen.

Volgende stappen

In deze zelfstudie hebt u een ASP.NET Core-web-app in Azure geïmplementeerd en u hebt een Unity-app geconfigureerd en geïmplementeerd. U hebt ruimtelijk ankers met de app gemaakt en u hebt deze gedeeld met andere apparaten met behulp van uw ASP.NET Core-web-app.

U kunt uw ASP.NET Core-web-app verbeteren zodat deze gebruikmaakt van Azure Cosmos DB om de opslag van uw gedeelde ruimtelijke anker-id's te behouden. Door ondersteuning voor Azure Cosmos DB toe te voegen, kunt u vandaag nog een anker maken met uw ASP.NET Core web-app. Met de anker-id die is opgeslagen in uw web-app, kunt u de app later terugsturen om het anker opnieuw te vinden.