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 programować z użyciem ARCore, w artykule Pierwsze kroki znajdziesz informacje o wymaganiach dotyczących oprogramowania i sprzętu, wymaganiach wstępnych oraz innych kwestii dotyczących używanych przez Ciebie platform.
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 usuwanie kotwic geoprzestrzennych.
Preferowana jest autoryzacja bezkluczowa, ale obsługiwana jest też autoryzacja za pomocą klucza API.
Dodaj wymagane biblioteki do aplikacji
Po autoryzowaniu aplikacji do wywoływania interfejsu ARCore API musisz dodać biblioteki, aby włączyć w niej funkcje geoprzestrzenne.
- Kliknij Edytuj > Ustawienia projektu > Zarządzanie wtyczkami XR > Rozszerzenia ARCore. Upewnij się, że opcja iOS Support Enabled jest włączona.
- 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:
- Upewnij się, że folder Assets projektu zawiera obiekt skryptowy ARCoreExtensionsConfig. Aby utworzyć profil, kliknij prawym przyciskiem myszy w panelu Zasoby i wybierz Utwórz > XR > Konfiguracja rozszerzeń ARCore.
W folderze Zasoby wybierz obiekt skryptu ARCoreExtensionsConfig i ustaw wartość Tryb geoprzestrzenny na Włączony.
Skonfiguruj obiekt gry ARCore Extensions, tak 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.
Sprawdź zgodność urządzeń
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 zwracana jest wartość FeatureSupported.Unsupported
, nie próbuj konfigurować sesji.
Prośba o dostęp do lokalizacji w czasie działania aplikacji
Aby włączyć usługi lokalizacji Unity w skrypcie, który uruchamia prośby o uprawnienia w czasie wykonywania, wykonaj te czynności:
W polu Project Settings > iOS > Other Settings > Location Usage Description wpisz nazwę aplikacji, która prosi o uprawnienia.
Włącz usługi lokalizacyjne Unity, aby wywołać prośbę o dostęp do lokalizacji w czasie wykonywania, w ten sposób:
public void OnEnable() { Input.location.Start(); } public void OnDisable() { Input.location.Stop(); }
Więcej informacji znajdziesz w dokumentacji Unity
LocationService
.
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, 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 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 niewielkimi lub żadnymi przeszkodami z góry GPS może wystarczyć do wygenerowania pozy z wysoką dokładnością.
Co dalej?
- Uzyskaj informacje o pozycji geograficznej z kamery urządzenia, aby określić dokładną lokalizację urządzenia użytkownika w świecie rzeczywistym.
- Sprawdź dostępność VPS w danej lokalizacji urządzenia.