Guide pratiche

Inizia a utilizzare Unity e Android XR

6 minuti di lettura
Luke Hopkins
Ingegnere per le relazioni con gli sviluppatori, Android

Samsung Galaxy XR è arrivato, basato su Android XR! Questo post del blog fa parte della settimana di approfondimento su Android XR, in cui forniamo risorse (post del blog, video, codice campione e altro ancora) progettate per aiutarti a imparare, creare e preparare le tue app per Android XR. 

Non c'è mai stato momento migliore per iniziare a sviluppare per XR. Lo scorso dicembre abbiamo annunciato Android XR, la nuova piattaforma Android di Google basata su standard aperti come OpenXR e Vulkan, che rende lo sviluppo per XR più accessibile che mai.


Inoltre, se combinato con gli strumenti XR esistenti di Unity, ottieni uno stack di sviluppo potente e maturo. In questo modo è possibile creare ed eseguire il deployment di app XR che funzionano su più dispositivi.

openxr_face_tracking2.webp

Indipendentemente dal fatto che tu abbia già sviluppato per XR o meno, vogliamo aiutarti a iniziare.

Questo blog ti aiuterà a iniziare a utilizzare Android XR e Unity per lo sviluppo. Ci concentreremo sui passaggi pratici per configurare l'ambiente, comprendere l'ecosistema dei pacchetti e iniziare a creare.

Al termine di questo blog, avrai una buona conoscenza di:

  • L'ecosistema dei pacchetti
  • I passaggi di configurazione essenziali
  • I metodi di input
  • La privacy e le autorizzazioni
  • I livelli di composizione

Unity per lo sviluppo di Android XR

Puoi scegliere Unity per la sua compatibilità multipiattaforma, che ti consente di creare una sola volta ed eseguire il deployment su Android XR e altri dispositivi XR.

Quando utilizzi Unity, puoi usufruire del suo ecosistema e dei suoi strumenti XR maturi. Dispone già di pacchetti consolidati come XR Interaction Toolkit, plug-in OpenXR, livelli di composizione XR, XR Hands, un ampio asset store ricco di componenti e modelli pronti per XR e strumenti di simulazione e test XR. Inoltre, da quando è stata rilasciata Unity 6 lo scorso novembre, potrai usufruire anche delle prestazioni migliorate della pipeline di rendering universale (URP), del miglior supporto grafico Vulkan e dei profili di build migliorati.

Ecco alcuni progetti di esempio per farti un'idea di cosa puoi fare:

Configurazione essenziale: le basi dello sviluppo

Requisiti e installazione di Unity 6

Per creare la tua app, devi utilizzare Unity 6, poiché le versioni precedenti non supportano Android XR. Installa prima Unity Hub, poi Unity 6 con il modulo Android Build Support, seguendo questi passaggi.

unity6.png

Profili di build di Android XR: semplificazione della configurazione

I profili di build di Unity sono asset di progetto che memorizzano le impostazioni e le configurazioni specifiche della piattaforma. Quindi, anziché dover configurare manualmente 15-20 impostazioni diverse in più menu, puoi utilizzare un profilo di build per farlo automaticamente.
Puoi creare i tuoi profili di build, ma per ora ti consigliamo di utilizzare il profilo di build Android XR dedicato che abbiamo creato.

Puoi selezionare il profilo di build scegliendo File > Build Profile dal tuo progetto Unity. Per istruzioni complete, consulta la pagina del flusso di lavoro Sviluppare per Android XR.

Se apporti modifiche, puoi creare un nuovo profilo di build da condividere con il tuo team. In questo modo, garantisci un'esperienza di build coerente su tutta la linea.

buildprofiles.png

Dopo questi passaggi, puoi creare ed eseguire il tuo APK per i dispositivi Android XR.

API grafiche: perché Vulkan è importante

Una volta configurato il progetto Unity con un profilo di build Android XR, ti consigliamo innanzitutto di assicurarti di aver impostato Vulkan come API grafiche. Android XR è stato creato come piattaforma Vulkan-first. A marzo 2025, Google ha annunciato che Vulkan è ora l'API grafiche ufficiale per Android. Si tratta di un'API grafiche moderna e di basso livello che aiuta gli sviluppatori a massimizzare le prestazioni delle GPU moderne e a sbloccare funzionalità avanzate come il ray tracing e il multithreading per immagini di gioco realistiche e coinvolgenti.

Questi standard forniscono la migliore compatibilità per le applicazioni esistenti e semplificano i problemi e i costi di porting. Inoltre, consentono di attivare funzionalità avanzate di Android XR come URP Application Space Warp e il rendering foveale

Unity 6 gestisce Vulkan automaticamente, quindi quando utilizzi il profilo di build Android XR, Unity configurerà Vulkan come API grafiche. In questo modo, potrai accedere a tutte le funzionalità avanzate di Android XR senza alcuna configurazione manuale.

Puoi verificare le impostazioni delle API grafiche andando su "Modifica" > "Impostazioni progetto" > "Player" > "Scheda Android" > "Altre impostazioni" > "API grafiche".

appentrypoint.png

Informazioni sull'ecosistema dei pacchetti

Esistono due pacchetti diversi che puoi utilizzare per Android XR in Unity. Uno è l'utilizzo delle estensioni Android XR per Unity e l'altro è l'utilizzo del pacchetto Unity OpenXR: Android XR.

Potrebbero sembrare la stessa cosa, ma abbi pazienza.

Il pacchetto Unity OpenXR: Android XR è il pacchetto Unity ufficiale per il supporto di Android XR. Fornisce la maggior parte delle funzionalità di Android XR, rese disponibili tramite gli standard OpenXR. Consente inoltre l'integrazione di AR Foundation per le funzionalità di realtà mista. Il vantaggio principale dell'utilizzo del pacchetto Unity OpenXR: Android XR è che offre un'API unificata per il supporto dei dispositivi XR.


Le estensioni Android XR per Unity sono il pacchetto XR di Google, progettato specificamente per lo sviluppo per i dispositivi Android XR. Integra il pacchetto Unity OpenXR con funzionalità aggiuntive come le modalità di fusione dell'ambiente, la creazione di mesh della scena, il rilevamento delle immagini e il rilevamento del corpo. Il compromesso è che puoi sviluppare solo per i dispositivi Android XR.


La scelta dipende dalle tue esigenze specifiche, ma in genere ti consigliamo di utilizzare Unity OpenXR: Android XR, in quanto ti offre molta più flessibilità per i dispositivi con cui la tua app sarà compatibile. In base ai requisiti dell'applicazione, puoi aggiungere le estensioni Android XR per Unity.

Come installare i pacchetti

Per aggiungere un nuovo pacchetto, con il progetto aperto in Unity, seleziona "Finestra" > "Gestione pacchetti" > "Gestore pacchetti".

Da qui puoi installare questi pacchetti dalla scheda "Registro Unity":

packagemanager.png

Puoi installare il pacchetto Android XR per Unity tramite GitHub selezionando l'icona ➕, poi "Installa pacchetto da URL Git" e inserendo "https://github.com/android/android-xr-unity-package.git".

packagemanager2.png

Funzionalità OpenXR richieste

Ora che hai installato i pacchetti necessari, attiviamo alcune funzionalità di base per far funzionare il progetto.

Puoi attivare l'impostazione OpenXR per Android: "Modifica" - > "Impostazioni progetto" -> "Gestione plug-in XR" -> Fai clic su Android e attiva OpenXR

xrpluginmgmt.png

Poi dobbiamo attivare il supporto per "Supporto Android XR". Tratteremo altre funzionalità OpenXR man mano che ne avremo bisogno. Per ora dobbiamo solo attivare il supporto di Android XR.

Input

Android XR supporta l'input per mani, voce, eye tracking, tastiera e controller. Ti consigliamo di installare XR Interaction Toolkit e XR Hands, in quanto contengono i prefabbricati migliori per iniziare. Utilizzando questi prefabbricati, avrai tutto il necessario per supportare mani e controller nella tua app.

xrinteractiontoolkit.png

Una volta installati sia XR Hands sia XR Interactive Toolkit, ti consiglio di importare gli asset iniziali e la demo di interazione con le mani. Poi devi attivare i profili di interazione con le mani e del controller semplice Khronos e attivare le funzionalità del sottosistema di rilevamento delle mani e di puntamento del rilevamento delle mani Meta.

Puoi modificare queste impostazioni andando su "Modifica" > "Impostazioni progetto" > "Gestione plug-in XR" > "OpenXR"

profiles.png

Ti consigliamo anche il prefabbricato di Unity, XR Origin, che rappresenta la posizione e l'orientamento dell'utente nello spazio XR. Contiene i componenti di rig della videocamera e di rilevamento necessari per eseguire il rendering dell'esperienza XR dal punto di vista corretto.

Il modo più semplice per aggiungere questo prefabbricato è importarlo dalla demo di integrazione delle mani che abbiamo importato in precedenza, che puoi trovare qui: "Hands Integration Toolkit" > "Hand Interaction" > "Prefabs" > "XR Origin"

prefabs.png

Ti consiglio di utilizzare questo prefabbricato anziché l'opzione "XR Origin" negli oggetti di gioco, in quanto utilizza XR Input Modality Manager, che passa automaticamente dalle mani ai controller degli utenti. In questo modo, avrai la massima probabilità di passare dalle mani ai controller.

Privacy e autorizzazioni: creare la fiducia degli utenti

Qualunque cosa tu crei, dovrai acquisire le autorizzazioni di runtime dagli utenti. Questo perché la comprensione della scena, l'eye tracking, il tracciamento facciale e il tracciamento delle mani forniscono l'accesso a dati che potrebbero essere più sensibili per l'utente.

Queste funzionalità forniscono informazioni personali più approfondite rispetto alle tradizionali app per computer o dispositivi mobili, quindi le autorizzazioni di runtime garantiscono che gli utenti abbiano il pieno controllo dei dati che scelgono di condividere. Pertanto, per rispettare le norme sulla sicurezza e sulla privacy di Android, Android XR dispone di autorizzazioni per ciascuna di queste funzionalità.

Ad esempio, se utilizzi il pacchetto XR Hands per i gesti personalizzati delle mani, dovrai richiedere l'autorizzazione di tracciamento delle mani (vedi sotto), poiché questo pacchetto deve monitorare molte informazioni sulle mani dell'utente. Sono inclusi, ad esempio, il rilevamento delle pose delle articolazioni delle mani e delle velocità angolari e lineari.

Nota: per un elenco completo delle estensioni che richiedono autorizzazioni, consulta le informazioni sul sito web per sviluppatori XR.

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

Migliorare la qualità visiva con i livelli di composizione

Un livello di composizione è il modo consigliato per eseguire il rendering degli elementi dell'interfaccia utente. Consentono di visualizzare gli elementi con una qualità molto superiore rispetto alla pipeline di rendering standard di Unity, poiché tutto viene sottoposto a rendering direttamente nel compositore della piattaforma.

Ad esempio, se visualizzi del testo, è più probabile che il rendering standard di Unity presenti testo sfocato, bordi morbidi e artefatti visivi. Con i livelli di composizione, invece, il testo sarà più chiaro, i contorni più nitidi e l'esperienza complessiva sarà migliore.


Oltre al testo, esegue il rendering di video, immagini ed elementi dell'interfaccia utente con una qualità molto superiore. Lo fa utilizzando il supporto nativo per i livelli del compositore di runtime.

Per attivare i livelli di composizione, apri Gestore pacchetti, seleziona "Registro Unity" e poi installa "XR Composition Layers".

Crea ed esegui

Ora che hai installato i pacchetti OpenXR e attivato le funzionalità, una configurazione prefabbricata per il movimento di mani e testa, puoi creare la scena ed eseguirne il deployment direttamente sul visore per i test.

Passaggi successivi: ampliare le tue competenze

Ora che hai configurato l'ambiente di sviluppo Android XR e hai compreso i concetti chiave, ecco i passaggi successivi per continuare il tuo percorso di sviluppo XR:

Risorse essenziali per continuare a imparare:

Progetti di esempio da esplorare:

Scritto da:

Continua a leggere