Włącz interfejs Geospatial API dla aplikacji Unity (AR Foundation) kierowanej na iOS

Skonfiguruj ustawienia aplikacji, aby mogła korzystać z interfejsu Geospatial API.

Wymagania wstępne

Zanim przejdziesz dalej, upewnij się, że rozumiesz podstawowe zagadnienia związane z rozszerzoną rzeczywistością oraz że wiesz, jak skonfigurować sesję ARCore.

Więcej informacji o Geospatial API znajdziesz w artykule Wprowadzenie do Geospatial API.

Jeśli dopiero zaczynasz tworzyć aplikacje z wykorzystaniem ARCore, zapoznaj się z artykułem Pierwsze kroki, aby dowiedzieć się więcej o wymaganiach sprzętowych i programowych, wymaganiach wstępnych oraz innych informacjach dotyczących platform, których używasz.

Aby korzystać z interfejsu ARCore Geospatial API, projekt musi obsługiwać AR Foundation oraz rozszerzenia ARCore dla AR Foundation.

Włącz interfejs ARCore API

Zanim użyjesz w aplikacji systemu pozycjonowania wizualnego (VPS), musisz najpierw włączyć interfejs ARCore API w nowym lub istniejącym projekcie Google Cloud. Ta usługa odpowiada za hostowanie, przechowywanie i rozwiązywanie kotwic geoprzestrzennych.

Preferowana jest autoryzacja bezkluczowa, ale obsługiwana jest też autoryzacja za pomocą klucza API.

Dodawanie wymaganych bibliotek do aplikacji

Po autoryzowaniu aplikacji do wywoływania interfejsu ARCore API musisz dodać biblioteki, aby włączyć w niej funkcje geoprzestrzenne.

  1. Kliknij Edytuj > Ustawienia projektu > Zarządzanie wtyczkami XR > Rozszerzenia ARCore. Upewnij się, że opcja Włącz obsługę iOS jest zaznaczona.
  2. W sekcji Opcjonalne funkcje wybierz Geoprzestrzeń.

Włączanie funkcji geoprzestrzennych w konfiguracji sesji

Po włączeniu funkcji geoprzestrzennych w aplikacji włącz funkcje geoprzestrzenne w konfiguracji sesji AR, aby aplikacja mogła komunikować się z interfejsem ARCore API:

  1. Upewnij się, że folder Assets projektu zawiera obiekt skryptu ARCoreExtensionsConfig. Aby utworzyć profil, kliknij prawym przyciskiem w panelu Zasoby i wybierz Utwórz > XR > Konfiguracja rozszerzeń ARCore.
  2. W folderze Zasoby wybierz obiekt skryptu ARCoreExtensionsConfig i ustaw wartość Tryb geoprzestrzenny na Włączony.

  3. Skonfiguruj obiekt gry ARCore Extensions, aby używać konfiguracji ARCoreExtensionsConfig. W panelu Hierarchia odszukaj obiekt gry ARCore Extensions utworzony podczas początkowej konfiguracji rozszerzeń ARCore i połącz pole ARCore Extensions Config z obiektem skryptu ARCoreExtensionsConfig w folderze Zasoby.

Prośba o zezwolenie na użycie danych urządzenia

Aplikacje korzystające z interfejsu ARCore Geospatial API muszą wyświetlać użytkownikowi prośbę o potwierdzenie i zezwolenie na używanie danych z urządzenia. Więcej informacji znajdziesz w wymaganiach dotyczących prywatności użytkowników.

Sprawdzanie zgodności z urządzeniami

Nie wszystkie urządzenia, które obsługują ARCore, obsługują też Geospatial API. Aby sprawdzić, czy urządzenie użytkownika jest zgodne, zadzwoń pod numer AREarthManager.IsGeospatialModeSupported(). Jeśli zwróci wartość FeatureSupported.Unsupported, nie próbuj konfigurować sesji.

Pytanie użytkownika o dostęp do lokalizacji w czasie działania aplikacji

Aby włączyć usługi lokalizacji Unity w skrypcie, który uruchamia żądania uprawnień w czasie wykonywania, wykonaj te czynności:

  1. W polu Project Settings > iOS > Other Settings > Location Usage Description wpisz nazwę aplikacji, która prosi o uprawnienia.

  2. Włącz usługi lokalizacyjne Unity, aby wywołać prośbę o dostęp do lokalizacji w czasie działania aplikacji:

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

    Więcej informacji znajdziesz w dokumentacji LocationService Unity.

Sprawdzanie dostępności danych geoprzestrzennych w bieżącej lokalizacji urządzenia

Interfejs Geospatial API do określania położenia wykorzystuje kombinację VPS i GPS, dlatego można go używać, dopóki urządzenie jest w stanie określić swoją lokalizację. W obszarach o niskiej dokładności GPS, takich jak wnętrza budynków i gęsto zaludnione obszary miejskie, interfejs API będzie korzystać z usługi VPS, aby generować pozy o wysokiej dokładności. W typowych warunkach usługa VPS zapewnia dokładność pozycjonowania na poziomie około 5 metrów oraz dokładność obrotu na poziomie 5 stopni. Aby sprawdzić, czy dana lokalizacja ma pokrycie VPS, użyj AREarthManager.CheckVpsAvailability().

Interfejsu Geospatial API można też używać na obszarach, na których nie ma pokrycia VPS. W otoczeniu zewnętrznym z niewielkimi lub żadnymi przeszkodami z góry GPS może wystarczyć do wygenerowania pozy z wysoką dokładnością.

Co dalej?