Questa guida fornisce una panoramica dello sviluppo con Unity per Android XR. Android XR funziona con gli strumenti e le funzionalità familiari che ti aspetti da Unity. Poiché il supporto di Android XR di Unity è basato su OpenXR, molte delle funzionalità descritte nella Panoramica di OpenXR sono supportate anche in Unity.
Segui questa guida per scoprire di più su:
- Supporto di Unity per Android XR
- Nozioni di base su Unity XR
- Sviluppo e pubblicazione di app per Android XR
- Pacchetti Unity per Android XR
- Unity OpenXR: pacchetto Android XR
- Estensioni Android XR per Unity
- Considerazioni sulle funzionalità e sulla compatibilità
- Input e interazione
Supporto di Unity per Android XR
Quando crei app Unity per Android XR, puoi sfruttare le funzionalità e gli strumenti di realtà virtuale di Unity 6. Sono inclusi i modelli di realtà virtuale mista che utilizzano XR Interaction Toolkit, AR Foundation e il plug-in OpenXR per aiutarti a iniziare rapidamente. Quando crei app con Unity per Android XR, ti consigliamo di utilizzare Universal Render Pipeline (URP) come pipeline di rendering e Vulkan come API grafica. Queste funzionalità ti consentono di sfruttare alcune delle funzionalità grafiche più recenti di Unity, che sono supportate solo con Vulkan. Per ulteriori informazioni su come configurare queste impostazioni, consulta la guida alla configurazione del progetto.
Nozioni di base su Unity XR
Se non hai mai sviluppato con Unity o XR, puoi consultare il Manuale XR di Unity per comprendere i concetti e i flussi di lavoro di XR di base. Il manuale XR contiene informazioni su:
- Plug-in per provider XR, tra cui Unity OpenXR: Android XR e le estensioni Android XR per Unity
- Pacchetti di supporto XR per aggiungere altre funzionalità a livello di applicazione
- Una guida all'architettura XR che descrive la tecnologia di Unity XR e i sottosistemi XR
- Configurazione del progetto XR
- Creare ed eseguire app XR
- Indicazioni sulle grafiche XR, tra cui Universal Render Pipeline, rendering stereo, rendering foveato, regioni di rendering multiview e temporizzazione dei frame VR
- Indicazioni audio XR, incluso il supporto per gli effetti di spazializzazione audio
Sviluppo e pubblicazione di app per Android
Unity fornisce documentazione approfondita per lo sviluppo, la compilazione e la pubblicazione per Android, che copre argomenti come le autorizzazioni Android in Unity, le impostazioni di compilazione Android, la compilazione dell'app per Android e il caricamento su Google Play.
Pacchetti Unity per Android XR
Esistono due pacchetti che forniscono il supporto per la creazione di app Unity per Android VR. Entrambi questi pacchetti sono plug-in del provider XR, che possono essere attivati tramite il pacchetto di gestione dei plug-in XR di Unity. Il gestore dei plug-in XR aggiunge le impostazioni del progetto per gestire e offrire assistenza per il caricamento, l'inizializzazione, le impostazioni e il supporto per la compilazione dei plug-in XR. Per consentire all'app di eseguire le funzionalità OpenXR in fase di runtime, queste funzionalità devono essere attivate nel progetto tramite il gestore dei plug-in.
Questa immagine mostra un esempio di dove puoi attivare questi gruppi di funzionalità tramite editor di Unity.
Unity OpenXR Android XR
Il pacchetto Unity OpenXR Android XR è un plug-in XR per aggiungere il supporto di Android XR a Unity. Questo plug-in XR fornisce la maggior parte del supporto di Android XR per Unity e abilita il supporto dei dispositivi Android XR per i progetti AR Foundation. AR Foundation è progettato per gli sviluppatori che vogliono creare esperienze AR o di realtà mista. Fornisce l'interfaccia per le funzionalità AR, ma non implementa alcuna funzionalità. L'implementazione è fornita dal pacchetto Unity OpenXR Android XR. Per iniziare a utilizzare questo pacchetto, consulta il manuale del pacchetto, che contiene una guida introduttiva.
Estensioni Android XR per Unity
Le Estensioni Android XR per Unity integrano il pacchetto Android XR di Unity OpenXR e includono funzionalità aggiuntive per aiutarti a creare esperienze immersive. Può essere utilizzato da solo o insieme al pacchetto Unity OpenXR Android XR.
Per iniziare a utilizzare questo pacchetto, consulta la nostra guida alla configurazione del progetto o la guida rapida all'importazione delle Estensioni XR per Android per Unity.
Considerazioni sulle funzionalità e sulla compatibilità
La tabella seguente descrive le funzionalità supportate dal pacchetto Unity OpenXR: Android XR e dal pacchetto Android XR Extensions for Unity e può essere utilizzata per determinare quale pacchetto contiene le funzionalità di cui hai bisogno e eventuali considerazioni sulla compatibilità.
Funzionalità |
Unity OpenXR: stringa della funzionalità Android XR |
Stringa della funzionalità delle Estensioni Android XR per Unity |
Casi d'uso e comportamento previsto |
---|---|---|---|
Android XR: sessione AR
|
Android XR (Estensioni): gestione delle sessioni
|
Per utilizzare le funzionalità di uno dei pacchetti, devi attivare la funzionalità Sessione AR per quel pacchetto. Puoi attivare entrambi i set di funzionalità contemporaneamente; le singole funzionalità gestiranno i conflitti di conseguenza. |
|
n/a |
n/a |
Il monitoraggio del dispositivo viene utilizzato per monitorare la posizione e la rotazione del dispositivo nello spazio fisico. L'GameObject XR Origin gestisce automaticamente il monitoraggio dei dispositivi e la trasformazione dei dispositivi rilevabili nel sistema di coordinate di Unity tramite il componente XROrigin e la gerarchia GameObject con una fotocamera e TrackedPoseDriver. |
|
Android XR: fotocamera AR |
n/a |
Questa funzionalità supporta la stima della luce e il passthrough a schermo intero. |
|
Android XR: piano AR |
Android XR (Estensioni): piano |
Queste due funzionalità sono identiche; utilizza una o l'altra. Android XR (Estensioni): Piano è incluso in modo che gli sviluppatori possano utilizzare le funzionalità di monitoraggio degli oggetti e degli ancoraggi permanenti di Android XR (Estensioni) senza dover dipendere dal pacchetto Unity OpenXR Android XR. In futuro, Android XR (Estensioni): Piano verrà rimosso a favore di Android XR: ancora AR. |
|
n/a |
Android XR (estensioni): monitoraggio degli oggetti |
Questa funzionalità supporta il rilevamento e il monitoraggio di oggetti nell'ambiente fisico, se utilizzata in combinazione con una raccolta di oggetti di riferimento. |
|
Android XR: AR Face
|
Android XR: monitoraggio dei volti
|
Il supporto degli occhi degli avatar è fornito tramite la funzionalità Android XR: AR Face. Accedi alle espressioni facciali di un utente tramite la funzionalità Android XR: monitoraggio dei volti. Se vuoi, puoi utilizzare queste due funzionalità insieme. |
|
Android XR: raycasting AR
|
n/a |
Questa funzionalità ti consente di emettere un raggio e calcolare l'intersezione tra il raggio e gli elementi tracciabili in piano o in profondità rilevati nell'ambiente fisico. |
|
Android XR: ancora AR |
Android XR (Estensioni): Anchor
|
Entrambe le funzionalità includono il supporto di ancore spaziali e di piano; utilizza una o l'altra funzionalità. Per gli ancoraggi permanenti, utilizza Android XR (Estensioni): Anchor. In futuro, Android XR (estensioni): Anchor verrà rimosso e tutte le funzionalità di Anchor saranno disponibili in Android XR: AR Anchor. |
|
Android XR: occlusione AR
|
n/a |
L'occlusione consente ai contenuti di realtà mista nella tua app di apparire nascosti o parzialmente oscurati dietro gli oggetti nell'ambiente fisico. |
|
Metriche sul rendimento |
Metriche sul rendimento di Android XR |
n/a |
Utilizza questa funzionalità per accedere alle metriche sul rendimento per i dispositivi Android XR. |
Supporto del livello di composizione (sono necessari il plug-in OpenXR e il livello di composizione XR) |
Android XR: livello di composizione passthrough
|
Utilizza il supporto dei livelli di composizione di Unity per creare livelli di composizione di base (ad es. quad, cilindro, proiezione). Android XR: il livello di composizione passthrough può essere utilizzato per creare un livello passthrough con un mesh personalizzato, leggendo da GameObject di Unity. |
|
Rendering foveale (è necessario il plug-in OpenXR)
|
Foveazione (legacy) |
Il rendering foveale consente di velocizzare il rendering abbassando la risoluzione delle aree nella visione periferica dell'utente. La funzionalità di rendering foveale di Unity è supportata solo per le app che utilizzano URP e Vulkan. La funzionalità Foveazione (legacy) nelle Estensioni Android XR per Unity supporta anche BiRP e GLES. Ti consigliamo di utilizzare la funzionalità di rendering foveale di Unity, se possibile, e tieni presente che sia URP che Vulkan sono consigliati per la compilazione per Android XR. |
|
n/a |
Android XR: spazio di riferimento illimitato |
Questa funzionalità imposta la modalità di origine del rilevamento di XRInputSubsystem su Senza limiti. Il valore Unbounded indica che XRInputSubsystem monitora tutti gli InputDevice in relazione a un ancoraggio al mondo, che può cambiare. |
|
n/a |
Modalità di fusione dell'ambiente |
Questa funzionalità ti consente di impostare la modalità di sfumatura dell'ambiente XR, che controlla il modo in cui le immagini virtuali si fondono con l'ambiente reale quando il passthrough è attivo. |
Input e interazione
Android XR supporta l'input naturale multimodale.
Oltre al monitoraggio delle mani e degli occhi, sono supportate anche periferiche come controller 6DoF, mouse e tastiera fisica. Ciò significa che le app per Android XR dovrebbero supportare l'interazione con le mani e non si può presumere che tutti i dispositivi siano dotati di controller.
Profili di interazione
Unity utilizza il profilo di interazione per gestire il modo in cui la tua applicazione XR comunica con vari dispositivi e piattaforme XR. Questi profili stabiliscono gli input e gli output previsti per diverse configurazioni hardware, garantendo la compatibilità e la funzionalità coerente su una serie di piattaforme. Se attivi i profili di interazione, puoi assicurarti che la tua applicazione XR funzioni correttamente con dispositivi diversi, mantenga una mappatura degli input coerente e abbia accesso a funzionalità XR specifiche. Per impostare un profilo di interazione:
- Apri la finestra Impostazioni progetto (menu: Modifica > Impostazioni progetto).
- Fai clic su Gestione plug-in XR per espandere la sezione dei plug-in (se necessario).
- Seleziona OpenXR nell'elenco dei plug-in XR.
- Nella sezione Profili di interazione, seleziona il pulsante + per aggiungere un profilo.
- Seleziona il profilo da aggiungere dall'elenco.
Interazione con le mani
L'interazione con le mani (XR_EXT_hand_interaction
) è fornita dal plug-in OpenXR e puoi esporre il
Interazione con lo sguardo
L'interazione con lo sguardo (XR_EXT_eye_gaze_interaction
) è fornita dal plug-in OpenXR e puoi utilizzare questo layout per recuperare i dati sulla posizione degli occhi (posizione e rotazione) restituiti dall'estensione. Scopri di più sull'interazione con il movimento oculare nella guida all'input OpenXR.
Interazione con il controller
Android XR supporta il profilo del controller Oculus Touch per i controller 6DoF. Entrambi questi profili sono forniti dal plug-in OpenXR.
Interazione con il mouse
Il profilo di interazione con il mouse Android XR (XR_ANDROID_mouse_interaction
) è fornito dalle estensioni Android XR per Unity. Espone un layout del dispositivo <AndroidXRMouse>
nel Unity Input System.
Interazione con la posizione della mano
Il plug-in OpenXR supporta l'interazione con la posa del palmo (XR_EXT_palm_pose
), che espone il layout <PalmPose>
all'interno del sistema di input di Unity. La posa del palmo non è pensata come alternativa a estensioni o pacchetti che eseguono il rilevamento delle mani per casi d'uso più complessi, ma può essere utilizzata per posizionare contenuti visivi specifici dell'app, come le visualizzazioni degli avatar. La posizione della mano è costituita dalla posizione e dall'orientamento del palmo.
Mani XR
Il pacchetto XR Hands ti consente di accedere ai dati del monitoraggio delle mani
(XR_EXT_hand_tracking
e XR_FB_hand_tracking_aim
) e
fornisce un wrapper per convertire i dati delle articolazioni delle mani dal monitoraggio delle mani alle pose di input.
Per utilizzare le funzionalità fornite dal pacchetto XR Hands, attiva le funzionalità Hand Tracking
Subsystem e Meta Hand Tracking Aim OpenXR.
Il pacchetto XR hands può essere utile se hai bisogno di dati più granulari sulle pose o sulle articolazioni delle mani o se devi lavorare con gesti personalizzati.
Per ulteriori dettagli, consulta la documentazione di Unity per la configurazione di XR Hands nel tuo progetto
Scegli un modo per visualizzare le mani
Android XR supporta due modi per eseguire il rendering delle mani: un mesh della mano e un visualizzatore prefab.
Maglia a mano
Il pacchetto Unity per Android XR contiene una funzionalità di mesh della mano che consente di accedere a XR_ANDROID_hand_mesh extension
. La funzionalità Maschera delle mani fornisce mesh per le mani dell'utente. La mesh della mano contiene vertici di triangoli che rappresentano la geometria di una mano. Questa funzionalità è prevista per essere utilizzata per fornire un mesh personalizzato che rappresenti la geometria reale delle mani dell'utente per la visualizzazione.
Prefab Mani XR
Il pacchetto XR Hands contiene un Sample chiamato Hands Visualizer, che contiene mani sinistra e destra completamente riggate per il rendering della rappresentazione delle mani dell'utente in base al contesto.
Gesti di sistema
Android XR include un gesto di sistema per aprire un menu che consente agli utenti di tornare indietro, aprire il programma di avvio o visualizzare una panoramica delle applicazioni in esecuzione. L'utente può attivare questo menu di sistema utilizzando un pizzico con la mano dominante.
Quando l'utente interagisce con il menu di navigazione del sistema, l'applicazione risponde solo agli eventi di monitoraggio della testa. Il pacchetto XR Hands può rilevare quando un utente esegue azioni specifiche, ad esempio interagisce con questo menu di navigazione di sistema. Controllando AimFlags SystemGesture e DominantHand, puoi sapere quando viene eseguita questa azione di sistema. Per saperne di più su AimFlags, consulta la documentazione di Enum MetaAimFlags di Unity.
XR Interaction Toolkit
Il pacchetto XR Interaction Toolkit è un sistema di interazione di alto livello basato su componenti per la creazione di esperienze VR e AR. Fornisce un framework che rende disponibili le interazioni 3D e UI dagli eventi di input di Unity. Supporta attività di interazione, tra cui feedback aptico, feedback visivo e locomozione.