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

Upewnij się, że znasz podstawowe pojęcia związane z AR. i dowiedz się, jak skonfigurować sesję ARCore, zanim przejdziesz dalej.

Zobacz Wprowadzenie do interfejsu Geospatial API informacje o interfejsie Geospatial API.

Jeśli nie masz doświadczenia w programowaniu z ARCore, przeczytaj artykuł Pierwsze kroki. zawiera informacje o wymaganiach dotyczących oprogramowania i sprzętu, wymagań wstępnych oraz inne informacje powiązane z platformami, z których korzystasz.

Aby można było używać interfejsu ARCore Geospatial API, projekt musi obsługiwać: Podstawy AR oraz ARCore Extensions for AR Foundation.

Włączanie interfejsu ARCore API

Przed użyciem systemu pozycjonowania wizualnego (VPS) w aplikacji 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 bez klucza, ale jest też obsługiwana autoryzacja klucza interfejsu API.

Dodaj wymagane biblioteki do aplikacji

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

  1. Kliknij Edytuj > Ustawienia projektu > Zarządzanie wtyczkami XR > Rozszerzenia ARCore. Upewnij się, że włączona jest opcja iOS Support Enabled (Włączona obsługa iOS).
  2. W sekcji Funkcje opcjonalne wybierz Dane geoprzestrzenne.

Włącz funkcje geoprzestrzenne w konfiguracji sesji

Gdy włączysz funkcje geoprzestrzenne w swojej aplikacji, włącz je w konfiguracji sesji AR, aby umożliwić komunikację z interfejsem ARCore API:

  1. Upewnij się, że folder Assets projektu zawiera obiekt skryptowy ARCoreExtensionsConfig. Aby je utworzyć, kliknij prawym przyciskiem myszy w panelu Zasoby i wybierz Utwórz > XR > Konfiguracja rozszerzeń ARCore.
  2. Wybierz obiekt skryptowy ARCoreExtensionsConfig w folderze Assets i ustaw opcję Tryb geoprzestrzenny na Enabled (Włączono).

  3. Skonfiguruj obiekt gry ARCore Extensions, tak aby używał konfiguracji ARCoreExtensionsConfig. W panelu Hierarchy znajdź obiekt gry ARCore Extensions utworzony podczas początkowej konfiguracji rozszerzeń ARCore i połącz pole ARCore Extensions Config z obiektem skryptu ARCoreExtensionsConfig w folderze Assets.

Pytaj użytkownika o zgodę na użycie danych na urządzeniu

Aplikacje używające ARCore Geospatial API muszą wyświetlić użytkownikowi przyjmuje do wiadomości i zezwala na korzystanie z danych ze swojego urządzenia. Zobacz Wymagania dotyczące prywatności. i informacjami o nich.

Sprawdź zgodność urządzeń

Nie wszystkie urządzenia, które obsługują ARCore, obsługują też interfejs Geospatial API. Aby sprawdzić urządzenia użytkownika, aby zapewnić zgodność, wywołaj AREarthManager.IsGeospatialModeSupported() Jeśli zwracana jest wartość FeatureSupported.Unsupported, nie próbuj konfigurować parametru .

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

Aby włączyć usługi lokalizacyjne Unity w skrypcie, który aktywuje środowisko wykonawcze prośby o uprawnienia, wykonaj te czynności:

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

  2. Aby aktywować środowisko wykonawcze, włącz usługi lokalizacyjne Unity prośby o zgodę w ten sposób:

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

    Zobacz: Unity LocationService dokumentacji.

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

Ponieważ interfejs Geospatial API do określania pozycji geoprzestrzennej używa kombinacji VPS i GPS, można go używać, jeśli urządzenie jest w stanie określić swoją lokalizację. W obszarach o niskiej dokładności GPS, na przykład w pomieszczeniach wewnątrz i w gęstym środowisku miejskim, interfejs API wykorzystuje zasięg VPS do generowania pozycji o wysokiej dokładności. W typowych warunkach VPS może zapewniać dokładność pozycjonowania do około 5 metrów i dokładność obrotu do 5 stopni. Użyj 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 mają zasięgu VPS. Na zewnątrz, gdzie jest niewiele przeszkód z góry, lub bez przeszkód, do wygenerowania pozycji z dużą dokładnością wystarczy GPS.

Co dalej?