Questa guida fornisce una panoramica dello sviluppo con Unity per Android XR. Android XR funziona con gli strumenti e le funzionalità che ti aspetti da Unity. Poiché il supporto di Android XR di Unity si basa 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 su funzionalità e compatibilità
- Input e interazione
Supporto di Unity per Android XR
Quando crei app Unity per Android XR, puoi sfruttare gli strumenti e le funzionalità di realtà mista nelle ultime versioni di Unity 6. Sono inclusi modelli di realtà mista che utilizzano XR Interaction Toolkit, AR Foundation e OpenXR Plugin per aiutarti a iniziare rapidamente. Quando crei app con Unity per Android XR, ti consigliamo di utilizzare la pipeline di rendering universale (URP) come pipeline di rendering e Vulkan come API Graphics. Queste funzionalità ti consentono di sfruttare alcune delle funzionalità grafiche di Unity, che sono supportate solo con Vulkan. Per ulteriori informazioni su come configurare queste impostazioni, consulta la guida alla configurazione del progetto.
Unity XR Basics
Se non hai mai utilizzato Unity o lo sviluppo XR, puoi consultare il manuale XR di Unity per comprendere i concetti e i flussi di lavoro XR di base. Il manuale XR contiene informazioni su:
- Plug-in del fornitore XR, tra cui Unity OpenXR: Android XR e le estensioni Android XR per Unity
- Pacchetti di assistenza XR per aggiungere funzionalità aggiuntive a livello di applicazione
- Una guida all'architettura XR che descrive lo stack tecnologico Unity XR e i sottosistemi XR
- Configurazione del progetto XR
- Creare ed eseguire app XR
- Linee guida per la grafica XR, tra cui Universal Render Pipeline, rendering stereo, rendering foveato, regioni di rendering multiview e tempistica dei frame VR
- Guida audio XR, incluso il supporto per gli spatializer audio
Sviluppare e pubblicare app per Android
Unity fornisce una documentazione dettagliata per lo sviluppo, la creazione e la pubblicazione per Android, che copre argomenti quali le autorizzazioni Android in Unity, le impostazioni di build di Android, la creazione dell'app per Android e la distribuzione su Google Play.
Pacchetti Unity per Android XR
Esistono due pacchetti che forniscono supporto per la creazione di app Unity per Android XR. Entrambi i pacchetti sono plug-in del fornitore XR, che possono essere abilitati tramite il pacchetto di gestione dei plug-in XR di Unity. Il plug-in XR Manager aggiunge le impostazioni del progetto per gestire e offrire assistenza per il caricamento, l'inizializzazione, le impostazioni e il supporto della build per i plug-in XR. Per consentire all'app di eseguire le funzionalità OpenXR in fase di runtime, il progetto deve avere queste funzionalità abilitate tramite il plug-in manager.
Questa immagine mostra un esempio di dove puoi attivare questi gruppi di funzionalità tramite l'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 consente il supporto dei dispositivi Android XR per i progetti AR Foundation. AR Foundation è progettato per gli sviluppatori che vogliono creare esperienze di AR o realtà mista. Fornisce l'interfaccia per le funzionalità AR, ma non implementa alcuna funzionalità. Il pacchetto Unity OpenXR Android XR fornisce l'implementazione. 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 Unity OpenXR Android XR e includono funzionalità aggiuntive per aiutarti a creare esperienze coinvolgenti. Può essere utilizzato da solo o insieme al pacchetto Unity OpenXR Android XR.
Per iniziare a utilizzare questo pacchetto, segui la nostra guida alla configurazione del progetto o la guida rapida per importare le estensioni Android XR per Unity.
Considerazioni su funzionalità e compatibilità
La tabella seguente descrive le funzionalità supportate da Unity OpenXR: il pacchetto Android XR e il pacchetto Android XR Extensions for Unity. Può essere utilizzata per determinare quale pacchetto contiene le funzionalità di cui hai bisogno e eventuali considerazioni sulla compatibilità.
Funzionalità |
Unity OpenXR: stringa di funzionalità Android XR |
Stringa della funzionalità delle estensioni Android XR per Unity |
Casi d'uso e comportamento previsto |
---|---|---|---|
Android XR: AR Session
|
Android XR (estensioni): gestione delle sessioni
|
Per utilizzare le funzionalità di uno dei due 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/D |
N/D |
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 del dispositivo e la trasformazione degli elementi tracciabili nel sistema di coordinate di Unity utilizzando il componente XROrigin e la gerarchia GameObject con una videocamera e TrackedPoseDriver. |
|
Android XR: AR Camera |
N/D |
Questa funzionalità supporta la stima della luce e il passthrough a schermo intero. |
|
Android XR: AR Plane |
Android XR (estensioni): piano |
Queste due funzionalità sono identiche; utilizzane una o l'altra. Android XR (estensioni): il piano è incluso in modo che gli sviluppatori possano utilizzare le funzionalità di monitoraggio degli oggetti e degli ancoraggi persistenti di Android XR (estensioni) senza dover dipendere dal pacchetto Unity OpenXR Android XR. In futuro, Android XR (estensioni): Plane verrà rimosso a favore di Android XR: AR Anchor. |
|
N/D |
Android XR (estensioni): monitoraggio oggetti |
Questa funzionalità supporta il rilevamento e il monitoraggio di oggetti nell'ambiente fisico, utilizzati in combinazione con una libreria di oggetti di riferimento. |
|
Android XR: AR Face
|
Android XR: monitoraggio dei volti
|
Il supporto degli occhi dell'avatar è fornito tramite la funzionalità Android XR: AR Face. Accedere alle espressioni facciali di un utente tramite la funzionalità Android XR: monitoraggio dei volti. Queste due funzionalità possono essere utilizzate insieme. |
|
Android XR: AR Raycast
|
N/D |
Questa funzionalità ti consente di lanciare un raggio e calcolare l'intersezione tra questo raggio e i tracker di piani o di profondità rilevati nell'ambiente fisico. |
|
Android XR: AR Anchor |
Android XR (estensioni): ancora
|
Entrambe le funzionalità includono il supporto per gli ancoraggi spaziali e gli ancoraggi del piano. Utilizza una funzionalità o l'altra. Per gli ancoraggi persistenti, 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: AR Occlusion
|
N/D |
L'occlusione consente ai contenuti di realtà mista della tua app di apparire nascosti o parzialmente oscurati dietro gli oggetti nell'ambiente fisico. |
|
Metriche sul rendimento |
Metriche sul rendimento di Android XR |
N/D |
Utilizza questa funzionalità per accedere alle metriche sul rendimento dei dispositivi Android XR. |
Supporto del livello di composizione (sono richiesti 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 una mesh personalizzata, leggendo da GameObject di Unity. |
|
Rendering foveato (è richiesto il plug-in OpenXR)
|
Foveation (legacy) |
Il rendering foveato consente di velocizzare il rendering riducendo la risoluzione delle aree nella visione periferica dell'utente. La funzionalità di rendering foveato di Unity è supportata solo per le app che utilizzano URP e Vulkan. La funzionalità Foveation (legacy) nelle estensioni Android XR per Unity supporta anche la pipeline di rendering integrata e OpenGL ES. Ti consigliamo di utilizzare la funzionalità di rendering foveato di Unity, se possibile, e tieni presente che URP e Vulkan sono entrambi consigliati per la creazione per Android XR. |
|
N/D |
Android XR: spazio di riferimento illimitato |
Questa funzionalità imposta la modalità di origine del tracciamento di XRInputSubsystem su Unbounded. Senza limiti indica che XRInputSubsystem monitora tutti gli InputDevice in relazione a un ancoraggio del mondo, che può cambiare. |
|
N/D |
Modalità fusione ambiente |
Questa funzionalità ti consente di impostare la modalità di fusione 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 rilevamento di mani e occhi, sono supportate anche periferiche come controller 6DoF, mouse e tastiera fisica. Ciò significa che le app per Android XR devono 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 l'applicazione XR comunica con vari dispositivi e piattaforme XR. Questi profili stabiliscono gli input e gli output previsti per diverse configurazioni hardware, promuovendo la compatibilità e la funzionalità coerente su una gamma di piattaforme. Se attivi i profili di interazione, puoi contribuire a garantire che la tua applicazione XR funzioni correttamente con dispositivi diversi, mantenga una mappatura coerente dell'input 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 layout del dispositivo <HandInteraction>
nel sistema di input di Unity attivando il profilo di
interazione con le mani. Utilizza questo profilo di interazione per l'input manuale supportato dalle quattro pose di azione definite da OpenXR: "pizzico", "tocco", "mira" e "presa". Se hai bisogno di funzionalità aggiuntive di interazione con le mani o di rilevamento delle mani, consulta la sezione XR Hands in questa pagina.
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
di posa degli occhi (posizione e rotazione) restituiti dall'estensione. Scopri di più sull'interazione
con lo sguardo nella guida OpenXR Input.
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 di Android XR (XR_ANDROID_mouse_interaction
)
è fornito dalle estensioni Android XR per Unity. Espone un
layout del dispositivo <AndroidXRMouse>
nel sistema di input di Unity.
Interazione con la posa del palmo
Il plug-in OpenXR fornisce il supporto per l'interazione
con la postura della mano (XR_EXT_palm_pose
), che
espone il layout <PalmPose>
all'interno dell'Unity Input System.
La posa della mano non è pensata per sostituire estensioni o pacchetti che
eseguono il monitoraggio della mano per casi d'uso più complessi. Può invece essere utilizzata per
posizionare contenuti visivi specifici dell'app, come le immagini degli avatar. La posa della mano consiste
nella posizione e nell'orientamento del palmo.
Mani XR
Il pacchetto XR Hands ti consente di accedere ai dati di tracciamento delle mani utilizzando
XR_EXT_hand_tracking
e
XR_FB_hand_tracking_aim
e fornisce un wrapper per convertire
i dati delle articolazioni della mano dal tracciamento della mano alle pose di input. Per utilizzare le funzionalità fornite
dal pacchetto XR Hands, attiva le funzionalità Sottosistema di tracciamento delle mani e Meta Hand
Tracking Aim OpenXR.
Il pacchetto XR hands può essere utile se hai bisogno di dati più granulari sulla postura della mano o sulle articolazioni della mano oppure quando devi lavorare con gesti personalizzati.
Per maggiori dettagli, consulta la documentazione di Unity sulla configurazione di XR Hands nel tuo progetto.
Scegliere una modalità di rendering delle mani
Android XR supporta due modi di rendering delle mani: una mesh della mano e un visualizzatore prefab.
Maglia a mano
Il pacchetto Android XR Unity contiene una funzionalità di mesh della mano che fornisce
l'accesso a XR_ANDROID_hand_mesh extension
. La funzionalità Mesh della mano
fornisce mesh per le mani dell'utente. La mesh della mano contiene i vertici dei triangoli che rappresentano la geometria di una mano. Questa funzionalità è pensata per
fornire una mesh personalizzata che rappresenti la geometria reale delle mani dell'utente
per la visualizzazione.
Prefab XR Hands
Il pacchetto XR Hands contiene un esempio chiamato Hands visualizer, che contiene mani sinistra e destra completamente attrezzate per il rendering di una rappresentazione appropriata al contesto delle mani dell'utente.
Gesti di sistema
Android XR include un gesto di sistema per aprire un menu che consente agli utenti di tornare indietro, aprire il launcher o visualizzare una panoramica delle app in esecuzione. L'utente può attivare questo menu di sistema usando il gesto di pizzico della 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 interagire con questo menu
di navigazione del sistema. Il controllo di AimFlags
, SystemGesture
e DominantHand
ti consente di sapere
quando viene eseguita questa azione di sistema. Per ulteriori informazioni su AimFlags
, consulta la
documentazione di Unity su Enum MetaAimFlags.
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 movimento.
OpenXR™ e il logo OpenXR sono marchi di proprietà di The Khronos Group Inc. e sono registrati come marchi in Cina, nell'Unione Europea, in Giappone e nel Regno Unito.