Tutorial: Compartilhar âncoras espaciais entre sessões e dispositivos

As Âncoras Espaciais do Azure são um serviço de desenvolvedor multiplataforma com o qual você pode criar experiências de realidade misturada usando objetos que persistem sua localização entre dispositivos ao longo do tempo.

Neste tutorial, você usa as Âncoras Espaciais do Azure para criar âncoras durante uma sessão e, depois, localizá-las, no mesmo dispositivo ou em um diferente. As mesmas âncoras também podem ser localizadas por vários dispositivos no mesmo lugar e ao mesmo tempo.

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

Neste tutorial, você aprenderá como:

  • Implantar um aplicativo Web ASP.NET Core no Azure que possa ser usado para compartilhar âncoras e armazenar as âncoras na memória por um período de tempo especificado.
  • Configurar a cena AzureSpatialAnchorsLocalSharedDemo dentro do exemplo do Unity de nossos inícios rápidos para aproveitar o aplicativo Web de Compartilhamento de Âncoras.
  • Implantar e executar as âncoras em um ou mais dispositivos.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Antes de iniciar este tutorial, verifique se você atendeu aos seguintes pré-requisitos:

Observação

Você usará o Unity e um aplicativo Web ASP.NET Core neste tutorial, mas essa abordagem é apenas para fornecer um exemplo de como compartilhar identificadores de Âncoras Espaciais do Azure em outros dispositivos. Você pode usar outras linguagens e tecnologias de back-end para atingir o mesmo objetivo.

Criar um recurso Âncoras Espaciais

Vá para o Portal do Azure.

No painel esquerdo, clique em Criar um recurso.

Use a caixa de pesquisa para Âncoras Espaciais.

Screenshot showing the results of a search for Spatial Anchors.

Selecione Âncoras Espaciais e clique em Criar.

No painel Conta de Âncoras Espaciais, faça o seguinte:

  • Insira um nome de recurso exclusivo usando caracteres alfanuméricos normais.

  • Selecione a assinatura que você deseja anexar o recurso.

  • Crie um grupo de recursos, selecionando Criar novo. Nomeie-o myResourceGroup e clique em OK.

    Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, é possível excluir posteriormente todo o grupo de recursos com uma única etapa simples.

  • Selecione um local (região) para criar o recurso.

  • Selecione Criar para começar a criar o recurso.

Screenshot of the Spatial Anchors pane for creating a resource.

Depois que o recurso for criado, o portal do Azure mostrará que a implantação foi concluída.

Screenshot showing that the resource deployment is complete.

Selecione Ir para o recurso. Agora você pode ver as propriedades do recurso.

Copie o valor da ID da Conta do recurso em um editor de texto para usar posteriormente.

Screenshot of the resource properties pane.

Copie também o valor do Domínio de Contas do recurso em um editor de texto para usar posteriormente.

Screenshot showing the resource's account domain value.

Em Configurações, selecione Chave de Acesso. Copie o valor da Chave primária, Chave de Conta, em um editor de texto para usar posteriormente.

Screenshot of the Keys pane for the account.

Baixe o projeto de amostra + SDK de importação

Clonar o Repositório de Exemplos

Clone o repositório de exemplos executando os seguintes comandos:

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

Importar SDK do ASA

Siga as instruções aqui para baixar e importar os pacotes do SDK do ASA necessários para a plataforma HoloLens.

Implantar o serviço de Compartilhamento de Âncoras

Observação

Neste tutorial, usaremos a camada gratuita do Serviço de Aplicativo do Azure. A camada gratuita atingirá o tempo limite após 20 minutos de inatividade e redefinirá o cache de memória.

Abra o Visual Studio e, depois, abra o projeto na pasta Sharing\SharingServiceSample.

Abra o assistente de publicação

No Gerenciador de Soluções, clique com o botão direito do mouse no projeto SharingService e selecione Publicar....

O assistente de publicação inicia.

  1. Selecione o DestinoAzure>Avançar.
  2. Selecione como o Destino específico o Serviço de Aplicativo do Azure (Windows)>Avançar
  3. Entre no portal do Azure.
  4. Selecione o verde "+" para Criar um Serviço de Aplicativo do Azure

Configurações do Serviço de Aplicativo

Configuração Valor sugerido Description
Nome myASASharingService Forneça um nome exclusivo ao serviço
Nome da assinatura Selecione a sua assinatura preferida do Azure
Grupo de recursos myResourceGroup ou selecione um existente Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, é possível excluir posteriormente todo o grupo de recursos com uma única etapa simples.
Plano de Hospedagem Selecione Novo... e veja a tabela abaixo Um plano do Serviço de Aplicativo especifica o local, tamanho e recursos do farm de servidores Web que hospeda o aplicativo. É possível economizar dinheiro ao hospedar vários aplicativos configurando os aplicativos Web para compartilhar um plano do Serviço de Aplicativo. Os Planos do Serviço de Aplicativo definem:
  • Região (por exemplo: Norte da Europa, Leste dos EUA ou Sudeste Asiático)
  • Tamanho da instância (pequena, média ou grande)
  • Contagem da escala (1 a 20 instâncias)
  • SKU (Gratuito, Compartilhado, Básico, Standard ou Premium)

Configurações do plano de hospedagem

Configuração Valor sugerido Descrição
Plano de Hospedagem MySharingServicePlan Forneça ao seu plano de hospedagem um nome exclusivo
Location Oeste dos EUA O datacenter onde o aplicativo Web está hospedado. Escolha um local mais próximo do local físico que seu aplicativo será usado
Tamanho Grátis O tipo de preço que determina os recursos de hospedagem
  1. Selecione Criar para criar o Serviço de Aplicativo
  2. Depois que o serviço de aplicativo for criado, selecione-o na lista "Instâncias do serviço de aplicativo" e selecione Concluir
  3. Na guia SharingService: Publicar, selecione Publicar

Depois que o aplicativo Web do ASP.NET Core tiver sido publicado no Azure, você poderá acessar https://<your_app_name>.azurewebsites.net ou clicar no link ao lado do Site: na guia SharingService: Publicar. Copie essa URL para um editor de texto para uso posterior.

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

Configurar + implantar o aplicativo de exemplo

Abrir Projeto

No Unity, abra o projeto na pasta Unity. O Unity poderá avisar que há uma diferença entre a versão do projeto e a versão instalada em seu computador. Esse aviso não é incomum, contanto que sua versão do Editor do Unity seja mais recente do que aquela em que o projeto foi criado. Caso sua versão seja mais recente, clique em Continuar. Caso sua versão seja mais antiga do que a exigida pelo projeto, clique em Sair e atualize o Editor do Unity.

Screenshot of the Unity pane.

Definir configurações de compilação

Abra Configurações de Build selecionando Arquivo>Configurações de Build.

Na seção Plataforma, selecione Plataforma Universal do Windows. Altere o Dispositivo de Destino para HoloLens.

Selecione Alternar Plataforma para alterar a plataforma para a Plataforma Universal do Windows. O Unity poderá solicitar que você instale componentes de suporte UWP, se estiverem faltando.

Screenshot of the Unity Build Settings pane - HoloLens

Feche a janela Configurações de Build.

Configurar as informações da conta

A próxima etapa será configurar o aplicativo para usar as informações da conta. Você copiou os valores de Chave de Conta, ID da Conta e Domínio de Contas em um editor de texto anteriormente, na seção "Criar um recurso de Âncoras Espaciais".

No painel Projeto, acesse Assets\AzureSpatialAnchors.SDK\Resources.

Clique em SpatialAnchorConfig. No painel Inspetor, insira o Account Key como o valor para a Chave de Conta de Âncoras Espaciais, o Account ID como o valor para a ID da Conta de Âncoras Espaciais e o Account Domain como o valor para o Domínio de Contas de Âncoras Espaciais.

Abra a Cena chamada AzureSpatialAnchorsLocalSharedDemo encontrada Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo clicando duas vezes nele no painel do projeto

No painel Projeto, acesse Assets\AzureSpatialAnchors.Examples\Resources.

Selecione SpatialAnchorSamplesConfig. Em seguida, no painel Inspetor, insira a URL Sharing Anchors Service (de sua implantação do Azure do aplicativo Web ASP.NET) como o valor para Base Sharing Url. Anexe o URL com /swagger/api/anchors. O resultado deve ser assim: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Salve a cena selecionando Arquivo>Salvar.

Exportar + implantar o aplicativo HoloLens

Abra Configurações de Build selecionando Arquivo>Configurações de Build.

Sob Cenas em compilação, verifique se todas as cenas tem uma marca de seleção ao lado deles.

Selecione Compilar. Na caixa de diálogo, selecione uma pasta para exportar o projeto do Visual Studio do HoloLens.

Quando a exportação estiver concluída, uma pasta contendo o projeto HoloLens exportado será exibida.

Na pasta, clique duas vezes em HelloAR U3D.sln para abrir o projeto no Visual Studio.

Altere a Configuração da Solução para Lançamento, altere a Plataforma da Solução para x86 e selecione Dispositivo das opções de destino de implantação.

Se estiver usando o HoloLens 2, use o ARM64 como a Plataforma de Solução, em vez de x86.

Visual Studio configuration

Ligue o dispositivo do HoloLens, entre e conecte o dispositivo ao computador usando um cabo USB.

Selecione Depurar>Iniciar depuração para implantar seu aplicativo e iniciar a depuração.

Executar o aplicativo

No aplicativo, selecione LocalSharedDemo usando as setas e pressione o botão Ir! para executar a demonstração. Siga as instruções para colocar uma âncora e fazer recall dela.

Com Criar e Compartilhar Âncora, você pode criar uma âncora e salvá-la em seu serviço de compartilhamento. Em troca, você receberá um identificador para ela que pode ser usado para recuperá-la do serviço de compartilhamento. Em seguida, você poderá executar o segundo cenário, Localizar Âncora Compartilhada, em seu dispositivo ou em um dispositivo diferente.

Com Localizar Âncora Compartilhada, você pode localizar as âncoras compartilhadas anteriormente inserindo o identificador mencionado anteriormente. Depois de escolher o cenário, o aplicativo fornecerá mais instruções. Por exemplo, você será solicitado a mover seu dispositivo para coletar informações sobre o ambiente. Mais adiante, você colocará uma âncora no mundo. Aguarde até que ela seja salva, inicie uma sessão e a localize.

Limpar os recursos

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos. Se você não espera precisar desses recursos no futuro, poderá excluí-los ao excluir o grupo de recursos.

No menu do portal do Azure ou na Página inicial, selecione Grupos de recursos. Em seguida, na página Grupos de recursos, selecione myResourceGroup.

Na página myResourceGroup, certifique-se de que os recursos listados são aqueles que deseja excluir.

Selecione Excluir grupo de recursos, digite myResourceGroup na caixa de texto para confirmar e selecione Excluir.

Próximas etapas

Neste tutorial, você implantou um aplicativo Web do ASP.NET Core no Azure e, então, configurou e implantou um aplicativo Unity. Você criou âncoras espaciais com o aplicativo e as compartilhou com outros dispositivos usando seu aplicativo Web ASP.NET Core.

Você pode aprimorar o aplicativo Web ASP.NET Core para que ele use o Azure Cosmos DB para persistir o armazenamento dos identificadores de âncoras espaciais compartilhadas. Ao adicionar suporte ao Azure Cosmos DB, você pode fazer com que seu aplicativo Web ASP.NET Core crie uma âncora hoje mesmo. Em seguida, usando o identificador de âncora armazenado no aplicativo Web, você pode fazer com que o aplicativo retorne dias mais tarde para localizar a âncora novamente.