Ativar a API Geospatial para o app Unity (AR Foundation) destinado ao iOS

Defina as configurações do app para que ele possa usar a API Geospatial.

Pré-requisitos

Entenda os conceitos fundamentais de RA e como configurar uma sessão do ARCore antes de continuar.

Consulte a Introdução à API Geospatial para mais informações.

Se você é iniciante no desenvolvimento com o ARCore, consulte Primeiros passos para informações sobre requisitos de software e hardware, pré-requisitos e outras informações específicas das plataformas que você está usando.

Para usar a API Geospatial do ARCore, seu projeto precisa oferecer suporte à AR Foundation e às extensões do ARCore para a AR Foundation.

Ativar a API ARCore

Antes de usar o sistema de posicionamento visual (VPS) no seu app, é necessário ativar a API ARCore em um projeto novo ou existente do Google Cloud. Esse serviço é responsável por hospedar, armazenar e resolver âncoras geoespaciais.

A autorização sem chave é preferível, mas a autorização de chave de API também é aceita.

Adicionar as bibliotecas necessárias ao app

Depois de autorizar o app a chamar a API ARCore, adicione bibliotecas para ativar os recursos geoespaciais no app.

  1. Navegue até Edit > Project Settings > XR Plug-in Management > ARCore Extensions. Verifique se a opção Suporte para iOS ativado está selecionada.
  2. Em Recursos opcionais, selecione Geoespacial.

Ativar os recursos geoespaciais na configuração da sessão

Depois que a funcionalidade Geospatial for ativada no app, ative os recursos Geospatial na configuração da sessão de RA do app para que ele possa se comunicar com a API ARCore:

  1. Verifique se a pasta Assets do projeto contém um objeto programável ARCoreExtensionsConfig. Para criar um, clique com o botão direito do mouse no painel Assets e selecione Create > XR > ARCore Extensions Config.
  2. Selecione o objeto de script ARCoreExtensionsConfig na pasta Recursos e defina Modo geoespacial como Ativado.

  3. Configure o objeto de jogo ARCore Extensions para usar a configuração ARCoreExtensionsConfig. No painel Hierarchy, localize o objeto de jogo ARCore Extensions que você criou ao configurar as extensões ARCore pela primeira vez e conecte o campo ARCore Extensions Config ao objeto com script ARCoreExtensionsConfig na pasta Assets.

Pedir ao usuário para permitir o uso de dados do dispositivo

Os apps que usam a API Geoespacial do ARCore precisam apresentar ao usuário uma solicitação para confirmar e permitir o uso de dados do dispositivo. Consulte Requisitos de privacidade do usuário para mais informações.

Verificar a compatibilidade do dispositivo

Nem todos os dispositivos compatíveis com o ARCore também são compatíveis com a API Geospatial. Para verificar a compatibilidade do dispositivo do usuário, chame AREarthManager.IsGeospatialModeSupported(). Se isso retornar FeatureSupported.Unsupported, não tente configurar a sessão.

Pedir permissões de localização ao usuário no momento da execução

Para ativar os serviços de localização do Unity em um script que aciona as solicitações de permissão de execução, faça o seguinte:

  1. Em Project Settings > iOS > Other Settings > Location Usage Description, insira o nome do app que está solicitando permissões.

  2. Ative os serviços de localização do Unity para acionar a solicitação de permissão do tempo de execução da seguinte maneira:

    public void OnEnable()
    {
        Input.location.Start();
    }
    
    public void OnDisable()
    {
        Input.location.Stop();
    }
    

    Consulte a documentação LocationService do Unity para mais informações.

Verificar a disponibilidade geoespacial no local atual do dispositivo

Como a API Geospatial usa uma combinação de VPS e GPS para determinar uma pose geoespacial, ela pode ser usada desde que o dispositivo consiga determinar a própria localização. Em áreas com baixa precisão de GPS, como espaços internos e ambientes urbanos densos, a API vai depender da cobertura do VPS para gerar poses de alta precisão. Em condições normais, o VPS pode fornecer uma precisão posicional de aproximadamente 5 metros e uma precisão de rotação de 5 graus. Use AREarthManager.CheckVpsAvailability() para determinar se um determinado local tem cobertura de VPS.

A API Geospatial também pode ser usada em áreas sem cobertura de VPS. Em ambientes externos com poucas ou nenhuma obstrução acima, o GPS pode ser suficiente para gerar uma pose com alta precisão.

A seguir