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

Skonfiguruj ustawienia aplikacji, aby umożliwić korzystanie z interfejsu Geospatial API.

Wymagania wstępne

Zanim przejdziesz dalej, upewnij się, że znasz podstawowe pojęcia związane z AR i wiesz, jak skonfigurować sesję ARCore.

Więcej informacji o interfejsie Geospatial API znajdziesz we wprowadzeniu do interfejsu Geospatial API.

Jeśli nie masz doświadczenia w programowaniu z ARCore, przeczytaj Pierwsze kroki, aby uzyskać informacje o wymaganiach dotyczących oprogramowania i sprzętu, wymagań wstępnych oraz innych informacji specyficznych dla używanych przez Ciebie platform.

Aby używać interfejsu ARCore Geospatial API, Twój projekt musi obsługiwać AR Foundation i ARCore Extensions for AR Foundation.

Włącz interfejs ARCore API

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

Preferowana jest autoryzacja bez klucza, ale obsługiwana jest również autoryzacja klucza interfejsu API.

Dodaj wymagane biblioteki do aplikacji

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

  1. Wybierz Edytuj > Ustawienia projektu > XR Plug-In Management > ARCore Extensions. Upewnij się, że opcja iOS Support Włączono jest zaznaczona.
  2. W sekcji Funkcje opcjonalne wybierz Dane geoprzestrzenne.

Włącz funkcje geoprzestrzenne w konfiguracji sesji

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

  1. Sprawdź, czy folder Assets w projekcie zawiera obiekt skryptu ARCoreExtensionsConfig. Aby je utworzyć, kliknij prawym przyciskiem myszy w panelu Zasoby i wybierz Utwórz > XR > Konfiguracja rozszerzeń ARCore.
  2. W folderze Assets (Zasoby) wybierz obiekt dostępny do skryptu ARCoreExtensionsConfig i ustaw Tryb geoprzestrzenny na Włączono.

  3. Skonfiguruj obiekt gry ARCore Extensions, aby użyć konfiguracji ARCoreExtensionsConfig. W panelu Hierarchia znajdź obiekt gry ARCore Extensions utworzony podczas początkowej konfiguracji rozszerzeń ARCore i połącz pole ARCore Extensions Config (Konfiguracja rozszerzeń ARCore Extensions) z obiektem ARCoreExtensionsConfig w folderze Assets.

Proś użytkownika o zgodę na użycie danych z urządzenia

Aplikacje korzystające z interfejsu ARCore Geospatial API muszą wyświetlać użytkownikowi prośbę o potwierdzenie i zezwolenie na korzystanie z danych z jego urządzenia. Więcej informacji znajdziesz w artykule Wymagania dotyczące prywatności użytkownika.

Sprawdź zgodność urządzenia

Nie wszystkie urządzenia obsługujące ARCore również obsługują interfejs Geospatial API. Aby sprawdzić zgodność urządzenia użytkownika, wywołaj metodę AREarthManager.IsGeospatialModeSupported(). Jeśli ta wartość zwraca wartość FeatureSupported.Unsupported, nie próbuj konfigurować sesji.

Pytaj użytkownika o dostęp do lokalizacji podczas działania

Aby włączyć usługi lokalizacyjne Unity w skrypcie, który uruchamia żądania uprawnień środowiska wykonawczego, 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 aktywować żądanie uprawnień środowiska wykonawczego, w ten sposób:

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

    Więcej informacji znajdziesz w dokumentacji LocationService na Unity.

Sprawdź dostępność danych geoprzestrzennych w bieżącej lokalizacji urządzenia

Interfejs Geospatial API używa kombinacji VPS i GPS do określania pozycji geoprzestrzennej, dlatego interfejsu API można używać, jeśli urządzenie może określić jego lokalizację. Na obszarach o niskiej dokładności sygnału GPS, takich jak przestrzenie wewnątrz budynków czy gęsty obszar miejski, interfejs API będzie wykorzystywać dane VPS do generowania ujęć o wysokiej dokładności. W typowych warunkach architektura VPS zapewnia dokładność pozycjonowania wynoszącą około 5 metrów i dokładność obrotu co 5 stopni. Użyj narzędzia AREarthManager.CheckVpsAvailability(), aby określić, czy dana lokalizacja ma zasięg VPS.

Interfejsu Geospatial API można też używać na obszarach, które nie są objęte zasięgiem VPS. W warunkach na zewnątrz, w których występuje niewiele przeszkód z powietrza lub nie ma ich wcale, do wykonania pozycji z dużą dokładnością GPS może wystarczyć sygnał GPS.

Co dalej