Version: 1.0.2
Target Device: Youbiquo Leonardo XR
Base SDK: Snapdragon Spaces 1.0.4
È raccomandato usare il Configuration Tool per la configurazione iniziale del progetto (vedi Getting Started). Questa guida descrive i passi manuali equivalenti per chi preferisce un controllo diretto sulle impostazioni.
Play In Editor: Per le impostazioni aggiuntive relative al workflow in editor vedi la sezione dedicata in Getting Started.
Abilita le features che devono essere attive a runtime in OpenXR Settings. Ciascuna feature corrisponde a un AR Foundation Manager e un XR Subsystem:
| Feature | AR Foundation Manager | XR Subsystem |
|---|---|---|
| Base Runtime | AR Session | XRSessionSubsystem |
| Camera Frame Access | AR Camera Manager | XRCameraSubsystem |
| Hit Testing | AR Raycast Manager | XRRaycastSubsystem |
| Image Tracking | AR Tracked Image Manager | XRImageTrackingSubsystem |
| Plane Detection | AR Plane Manager | XRPlaneSubsystem |
| Spatial Anchors | AR Anchor Manager | XRAnchorSubsystem |
| Spatial Meshing | AR Mesh Manager | XRMeshSubsystem |
Vai su Edit > Project Settings > Snapdragon Spaces Launcher Settings per dichiarare le features richieste o supportate dall’applicazione per: Hand Tracking, Eye Tracking, Passthrough, Controllers e Room Scale.
Attenzione: Per default tutti i valori
uses-featuresono impostati sutrue. Imposta sufalsele features non utilizzate dall’applicazione per evitare falsi requisiti nel manifest.
Importante: Il sample Camera Frame Access richiede la modalità unsafe abilitata in Player Settings > Android > Other Settings > Script Compilation > Allow ‘unsafe’ Code.
Il Passthrough permette di visualizzare l’ambiente fisico come overlay di immagine su dispositivi VR. Su LeonardoXR è disponibile sui dispositivi compatibili.
OnPassthroughToggle() in MainMenuSampleController, che imposta PassthroughToggle su BaseRuntimeFeature.ATTENZIONE: La camera della sessione deve avere il canale Alpha del Background impostato su 0 per usare il Passthrough correttamente. Viene registrato un avviso automatico se le impostazioni sono errate.
Il delegate OnSpacesAppSpaceChange in BaseRuntimeFeature notifica quando il dispositivo esegue un recenter (attivato tenendo premuto il tasto menu per 2 secondi sul VRX).
Nota: Questa guida presuppone conoscenza pregressa di AR Foundation e OpenXR. Consulta la documentazione ufficiale di AR Foundation e OpenXR per i concetti base.
Per abilitare il positional head tracking su LeonardoXR sono necessari i seguenti oggetti:
AR Session
XR Origin
└── Camera Offset
└── Main Camera (tagged as "MainCamera")
Creali facendo clic destro nella Hierarchy e selezionando XR > AR Session oppure XR > XR Origin.
Attenzione: Disabilita il componente AR Camera Manager se non stai recuperando frame RGB dalla camera, per evitare problemi nel lifecycle.
Importante: Disabilita il componente AR Camera Background — non è supportato e verrà disabilitato automaticamente a runtime.
La libreria Older Runtime Compatibility impedisce l’avvio dell’applicazione quando l’SDK non è compatibile con il runtime OpenXR installato sul dispositivo.
All’avvio vengono aggiunte due voci all’Android manifest:
targetAPI — corrisponde alla versione del runtime OpenXR inclusa nell’SDK.minAPI — la versione minima del runtime che ciascuna feature supporta.Versione: A partire da Snapdragon Spaces 1.0.4, il
minAPIper tutte le features è0.22.0.
| Risultato | Descrizione |
|---|---|
| Success | Nessuna incompatibilità rilevata. |
| Error Runtime Failure | Errore del runtime OpenXR. |
| Error Validation Failure | Errore nella validazione Older Runtime Compatibility. |
| Error Uninitialized System | Errore per mancanza di inizializzazione. |
| Error Runtime Too Old For Application | Il runtime installato è troppo vecchio per l’SDK. |
| Error Application Too Old For Runtime | L’SDK è troppo vecchio per il runtime installato. |
Quando viene rilevata un’incompatibilità compare un popup con un messaggio di errore e un pulsante Quit. Per le app con Dual Render Fusion l’utente viene informato ma l’applicazione può comunque avviarsi.
Per problemi non elencati qui, consulta le known issues generali della piattaforma Snapdragon Spaces.
L’aggiunta di un archivio controller personalizzato può causare errori di caching Gradle. Eliminare la cartella Temp > gradleOut risolve generalmente il problema.
AR Foundation Issues
ARRaycastHit.trackableId restituisce sempre 0-0.AR Raycast Manager quando è presente un XR Raycast Interactor, abilitando lo Spatial Meshing indipendentemente dal flag EnableARRaycasting. Questo può ridurre le performance.AR Camera Manager abilitato può causare freeze. Disabilita AR Camera Background per evitare problemi di rendering.