Włącz interfejs Geospatial API w aplikacji Unity (AR Foundation) kierowanej na Androida

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.
  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.

Prośba o dostęp do lokalizacji w czasie działania aplikacji

Rozszerzenia ARCore automatycznie proszą o odpowiednie uprawnienia do lokalizacji, gdy tryb geoprzestrzenny jest włączony w ARCoreExtensions.Update(). Jeśli użytkownik nie udzieli dokładnego dostępu do lokalizacji, sesja nie zostanie wznowiona, a wystąpi błąd „Brak dostępu”. Jest to błąd kończący działanie aplikacji. Wymaga ponownego uruchomienia, aby ponownie wyświetlić prośbę o uprawnienia.

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

Ponieważ interfejs Geospatial API do określania pozycji geoprzestrzennej wykorzystuje kombinację VPS i GPS, 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 usługę 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 niewielką liczbą przeszkód nad głową lub bez nich GPS może wystarczyć do wygenerowania pozy z wysoką dokładnością.

Co dalej?