1. Prima di iniziare
Geospatial Creator in Unity, basato su ARCore e sulle 3D Tiles fotorealistiche di Google Maps Platform, ti consente di creare e visualizzare rapidamente esperienze di realtà aumentata (AR) per una latitudine e una longitudine specifiche, il tutto all'interno di Unity Editor. In questo modo puoi ridurre notevolmente il tempo necessario per creare una singola scena AR geolocalizzata per la tua app, ma cosa succede se vuoi creare diverse esperienze simili in posizioni diverse? Puoi farlo anche utilizzando l'API C# in Geospatial Creator.
In questo codelab, scriverai codice C# che utilizza Geospatial Creator e l'API Places di Google Maps Platform per creare più esperienze geospaziali utilizzando un modello iniziale. Le esperienze risultanti possono essere esplorate e perfezionate in Unity Editor prima di essere compilate in un'app.

Prerequisiti
- Conoscenza di base della AR
- Conoscenza di base dell'API ARCore Geospatial
Obiettivi didattici
- Come utilizzare le API in Geospatial Creator per creare e visualizzare un'esperienza geolocalizzata in più località.
- Come utilizzare l'API Places di Google Maps Platform per trovare le posizioni dei luoghi.
- Come eseguire l'esperienza AR sul tuo dispositivo.
Che cosa ti serve
2. Configura l'ambiente
Per utilizzare Geospatial Creator, devi configurare l'autorizzazione per accedere a Photorealistic 3D Tiles, ai servizi ARCore su Google Cloud e all'API Places di Google Maps Platform.
Configura un progetto Google Cloud
Questo codelab richiede un progetto Google Cloud con fatturazione abilitata per accedere alle API server di Google. Per questo codelab è necessaria la configurazione della fatturazione, ma ti verranno addebitati costi solo se un progetto supera la quota di servizi senza costi.
Per configurare un progetto in Google Cloud:
- Crea un progetto nella console Google Cloud.

- Nella casella di testo Nome progetto, inserisci un nome appropriato, ad esempio
ARCore Geospatial Project, quindi scegli una località. - Fai clic su Crea.
- Nella console Google Cloud, nella pagina di selezione del progetto, fai clic su Crea progetto.
- Consulta Attivare la fatturazione ed esamina i prezzi per Photorealistic 3D Tiles e i prezzi per l'API Places (New).
Abilita l'API Map Tiles
L'API Map Tiles fornisce le Photorealistic 3D Tiles, visibili in Unity Editor.
Attivare l'API ARCore
L'API ARCore su Google Cloud ti consente di accedere all'API ARCore Geospatial sul dispositivo di destinazione.
Abilita l'API Places
L'API Places di Google Maps Platform ti consente di ottenere dati sulla posizione per oltre 200 milioni di luoghi, che utilizzerai nel codelab per trovare luoghi correlati. Questa API fornisce risultati di ricerca e coordinate geografiche per i luoghi.
Crea una chiave API per il tuo progetto
Per utilizzare l'autenticazione con chiave API per autenticare l'app con i servizi Google Cloud remoti, segui questi passaggi:
- Nella console Google Cloud, in API e servizi, seleziona Credenziali.
- Nella parte superiore della pagina, fai clic su Crea credenziali e poi seleziona Chiave API.
- Prendi nota della chiave perché ti servirà per i passaggi successivi.
Configurare il software
Per iniziare a utilizzare il software Geospatial Creator, segui questi passaggi:
- Clona questo repository.
- Scarica Unity Hub e utilizzalo per installare Unity versione 2022.3. Assicurati di installare gli strumenti di compilazione facoltativi per Android o iOS.
- In Unity Hub, premi Aggiungi > Aggiungi progetto dal disco.
- Nel riquadro Gerarchia, seleziona Origine di AR Geospatial Creator.
- Nella casella di testo Chiave API Google Maps Tile, inserisci la chiave API e poi premi
Enter(oreturnsu macOS).
- In Modifica > Impostazioni progetto > Gestione plug-in XR > Estensioni ARCore, utilizza l'autenticazione con chiave API per Android o iOS e inserisci la chiave API.
- In File > Build Settings, imposta la piattaforma di destinazione su Android o iOS.
3. Crea il tuo primo ancoraggio
In questo codelab, crei un ancoraggio AR che può essere utilizzato in più posizioni. Utilizziamo come esempio le biblioteche pubbliche di San Francisco, in California, ma puoi utilizzare le sedi più vicine a te.
Informazioni sul componente Origine di Geospatial Creator
Ogni scena Unity creata con Geospatial Creator richiede esattamente un'origine Geospatial Creator. Questo oggetto di gioco è il punto di riferimento per la conversione dei valori di latitudine, longitudine e altitudine del mondo reale in coordinate di gioco Unity.
Il progetto di esempio contiene un'origine di Geospatial Creator, che utilizza Cesium per eseguire il rendering dei riquadri 3D fotorealistici nella visualizzazione Scene dell'editor e ti consente di visualizzare esattamente in quale parte del mondo verranno visualizzati i tuoi contenuti AR.
Spostare l'origine
Sposta l'origine di Geospatial Creator sulla latitudine e la longitudine della sede principale della biblioteca di San Francisco.
Per utilizzare l'integrazione integrata di Geospatial Creator con l'API Places per riposizionare automaticamente l'origine nella posizione corretta, segui questi passaggi:
- Nel riquadro Gerarchia, seleziona l'oggetto di gioco Origine di Geospatial Creator.
- Nel riquadro Inspector, fai clic su Search for Location (Cerca posizione).
- Nella finestra di dialogo di ricerca, digita
San Francisco Public Library. Il primo risultato dovrebbe essere 100 Larkin Street. - Fai clic su Applica agli oggetti per applicare il risultato di ricerca all'origine. Dovresti vedere che la latitudine e la longitudine dell'origine vengono aggiornate con le nuove coordinate.

Aggiungere un ancoraggio di Geospatial Creator alla scena
Ora che esiste un'origine, aggiungi un ancoraggio di Geospatial Creator utilizzando GameObject > XR > AR Geospatial Creator Anchor. Per impostazione predefinita, l'ancora si trova nella stessa posizione dell'origine.
Utilizza questo ancoraggio per posizionare i nostri contenuti AR 3D. Il progetto di esempio include un modello 3D di un libro.
Per posizionare il libro nella scena:
- Nel riquadro Progetto, trascina il modello Libro nel riquadro della visualizzazione Editor.
- Nel riquadro Gerarchia, assicurati che Libro sia un elemento secondario dell'ancora creata in precedenza. Qualsiasi oggetto di gioco secondario dell'ancora di Geospatial Creator verrà posizionato rispetto all'ancora.
- Nel riquadro Gerarchia, seleziona Libro. Imposta i valori di posizione su 0, 0, 0.

Quando si guarda questo modello nella visualizzazione Editor, è evidente che qualcosa non va: l'altitudine predefinita dell'ancora è inferiore alla superficie del tetto della biblioteca, mentre dovrebbe fluttuare molto più in alto.
Anche se puoi spostare l'oggetto nell'editor per trovare l'altitudine WGS84 approssimativa, in questo caso è preferibile configurare gli ancoraggi geospaziali come ancoraggi sul tetto per far sì che la loro altitudine venga corretta automaticamente rispetto al tetto della struttura sopra la quale si trovano.
- Per farlo, apri il riquadro dell'ispettore dell'ancora e imposta la proprietà
Altitude TypesuRooftop.

Dopo averlo fatto, tieni presente che l'altitudine dell'ancora non cambia nella visualizzazione Editor. Questo perché l'altitudine dell'ancora viene determinata in fase di runtime quando l'ancora viene risolta per le ancore sul tetto e sul terreno. Per visualizzare l'ancora sul tetto nella visualizzazione Scene, puoi utilizzare il pulsante Aggancia al riquadro. In questo modo, l'altitudine dell'ancora corrisponde a quella del riquadro nella visualizzazione Scene, senza influire sull'altitudine dell'ancora risolta in fase di runtime.
- Per fare in modo che il modello fluttui sopra il tetto della biblioteca anziché appoggiarsi, modifica il parametro
Altitude relative to rooftopin modo che si trovi a 15 metri sopra il tetto.
Il modello ora fluttua piacevolmente sopra la libreria.

Il tuo progetto ora ha una scena AR geospaziale completa, inclusi tutti i componenti di sistema AR richiesti, un'origine di Geospatial Creator e un ancoraggio con un modello allegato.
A questo punto, crea ancore duplicate in altre posizioni della libreria.
4. Trovare nuove posizioni di ancoraggio con l'API Places
L'API Places di Google Maps Platform ti consente di ottenere dati sulla posizione per oltre 200 milioni di luoghi. In questo codelab, utilizzi questa API per trovare altre filiali di biblioteche pubbliche a San Francisco e utilizzare questi risultati per generare un ancoraggio di Geospatial Creator per i successivi dieci risultati di ricerca.
- Per iniziare, fai clic su Asset > Script > Editor e poi apri il file "
AnchorDuplicator.cs". Questo file fornisce un codice standard che ti aiuta a iniziare a utilizzare l'API Places e ad analizzarne i risultati.
Autenticarsi con l'API Places
- Individua la seguente riga nella classe
AnchorDuplicator:private const string API_KEY = "<YOUR_API_KEY_HERE>"; - Sostituisci <YOUR_API_KEY_HERE> con la chiave ottenuta nei passaggi di configurazione.
Eseguire query sull'API Places per un termine di ricerca
Una volta completata la configurazione dell'autorizzazione dell'API Places, puoi scrivere il codice che avvia una richiesta POST.
- A tal fine, trova il metodo
CreatePlacesRequeste utilizza la seguente definizione del metodo: Ora, quando viene chiamato il metodostring postBody = "{ \"textQuery\": \"" + searchTerm + "\", " + " \"locationBias\": { \"circle\": { " + " \"center\": { \"latitude\": " + lat + ", \"longitude\": " + lon + " }, " + " \"radius\": 10000 }" + " }" + "}"; string url = "https://places.googleapis.com/v1/places:searchText"; UnityWebRequest request = UnityWebRequest.Post(url, postBody, "application/json"); request.SetRequestHeader("X-Goog-Api-Key", apiKey); request.SetRequestHeader("X-Goog-FieldMask", "places.displayName,places.location"); return request;CreatePlacesRequest, viene effettuata una richiesta che cercasearchTermin un cerchio centrato sulatelon.
Verifica l'attività completata
Prima di continuare, devi verificare che le chiamate all'API Places siano riuscite.
- Esegui le funzioni in Unity Editor:
- In Google AR Codelab, fai clic su Run Places Request.
- Apri la console Unity. Dovresti vedere i risultati.

5. Aggiungere ancore ai luoghi in modo programmatico
Ora che hai verificato che l'API Places trova risultati, crea nuovi ancoraggi di Geospatial Creator in ogni posizione specificata dai risultati.
Creare una voce di menu
- Nella classe
AnchorDuplicator, trova il metodoCreateNewAnchorsFromPlacese utilizza la seguente definizione del metodo: Questa voce di menu controlla una richiesta avviata in precedenza e utilizza il primoif (_places == null) { Debug.LogError("Cannot create anchors: Places has not been initialized."); return; } // You start with only one anchor in the scene, which you want to copy: var prototypeAnchorObject = GameObject .FindObjectOfType<ARGeospatialCreatorAnchor>() .gameObject; foreach (var place in _places) { var newAnchorObject = GameObject.Instantiate(prototypeAnchorObject); var anchor = newAnchorObject.GetComponent<ARGeospatialCreatorAnchor>(); anchor.Latitude = place.location.latitude; anchor.Longitude = place.location.longitude; newAnchorObject.name = place.displayName.text; }ARGeospatialCreatorAnchornella scena come prototipo per la creazione di ancore, una per ogni luogo nel risultato dell'API Places. - Utilizza la nuova voce di menu Crea nuovi ancoraggi dalla risposta di Places in Google AR Codelab per creare gli ancoraggi.
- Dovresti vedere più ancore nel riquadro Gerarchia.
Verifica le posizioni degli ancoraggi
Per verificare che tutti gli asset siano ancorati nelle posizioni corrette prima di eseguire l'app:
- Fai clic su un ancoraggio aggiunto nel riquadro Gerarchia.
- Premi F.
- Ispeziona l'ancora nella visualizzazione
Scene. - Se un punto di ancoraggio non si trova nella posizione corretta, fai clic su Aggancia a riquadro o modifica manualmente i valori di
Latitude,LongitudeoEditor Override Altitude.
6. Visualizzare l'asset in AR
Per visualizzare l'asset in AR sul tuo dispositivo Android o iOS supportato da ARCore, segui questi passaggi:
- Fai clic su File > Impostazioni build e poi seleziona le piattaforme di build Android o iOS.
- Fai clic su Cambia piattaforma.
- Assicurati che il dispositivo di sviluppo sia connesso e configurato per lo sviluppo.
- Fai clic su Crea ed esegui.
- Verifica che l'app funzioni sul tuo dispositivo.
- Visita le posizioni in cui hai ancorato i contenuti. Se non hai modificato gli esempi, le località sono biblioteche pubbliche di San Francisco.

7. Conclusione
Complimenti! Hai scritto un'app Unity che utilizza Geospatial Creator e l'API Places di Google Maps Platform per creare più esperienze geospaziali utilizzando un modello iniziale. Ci auguriamo che queste informazioni ti aiutino a estendere la copertura dei tuoi contenuti di Geospatial Creator.