{"id":742,"date":"2026-03-25T16:30:23","date_gmt":"2026-03-25T15:30:23","guid":{"rendered":"https:\/\/www.youbiquo.eu\/geckode\/?page_id=742"},"modified":"2026-04-09T16:38:43","modified_gmt":"2026-04-09T14:38:43","slug":"vr-mr-leonardo-xr-sdk","status":"publish","type":"page","link":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/","title":{"rendered":"VR\/MR &#8211; Leonardo XR SDK"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"742\" class=\"elementor elementor-742\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fd26faf e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"fd26faf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc25ac3 elementor-widget elementor-widget-heading\" data-id=\"fc25ac3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">VR\/MR - LeonardoXR SDK<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-79fb590 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"79fb590\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-fc8f20f e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"fc8f20f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-738a8c1 elementor-widget__width-initial elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"738a8c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;exclude_headings_by_selector&quot;:&quot;footer&quot;,&quot;marker_view&quot;:&quot;bullets&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;far fa-dot-circle&quot;,&quot;library&quot;:&quot;fa-regular&quot;,&quot;rendered_tag&quot;:&quot;&lt;svg class=\\&quot;e-font-icon-svg e-far-dot-circle\\&quot; viewBox=\\&quot;0 0 512 512\\&quot; xmlns=\\&quot;http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\&quot;&gt;&lt;path d=\\&quot;M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\\&quot;&gt;&lt;\\\/path&gt;&lt;\\\/svg&gt;&quot;},&quot;no_headings_message&quot;:&quot;Non sono state trovate intestazioni in questa pagina.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t\t\t\t<h2 class=\"elementor-toc__header-title\">\n\t\t\t\tVR\/MR \u2014 LeonardoXR SDK\t\t\t<\/h2>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__738a8c1\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__738a8c1\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__738a8c1\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-459fe69 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"459fe69\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f22cf9b elementor-widget elementor-widget-text-editor\" data-id=\"f22cf9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 id=\"vrmr--leonardoxr-sdk\" class=\"code-line code-active-line\" dir=\"auto\" data-line=\"0\">VR\/MR \u2014 LeonardoXR SDK<\/h2><blockquote class=\"code-line\" dir=\"auto\" data-line=\"2\"><p class=\"code-line\" dir=\"auto\" data-line=\"2\"><strong>Version:<\/strong>\u00a01.0.2<br \/><strong>Target Device:<\/strong>\u00a0Youbiquo Leonardo XR<br \/><strong>Base SDK:<\/strong>\u00a0Snapdragon Spaces 1.0.4<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"6\" \/><h3 id=\"configurazione-manuale-del-progetto-unity\" class=\"code-line\" dir=\"auto\" data-line=\"8\">Configurazione Manuale del Progetto Unity<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"10\">\u00c8 raccomandato usare il\u00a0<strong>Configuration Tool<\/strong>\u00a0per la configurazione iniziale del progetto (vedi\u00a0<a href=\"https:\/\/file+.vscode-resource.vscode-cdn.net\/Users\/eleonora\/Downloads\/SDKGuide\/01-getting-started.md\" data-href=\"01-getting-started.md\">Getting Started<\/a>). Questa guida descrive i passi manuali equivalenti per chi preferisce un controllo diretto sulle impostazioni.<\/p><h4 id=\"modifica-le-project-settings\" class=\"code-line\" dir=\"auto\" data-line=\"12\">Modifica le Project Settings<\/h4><ol class=\"code-line\" dir=\"auto\" data-line=\"14\"><li class=\"code-line\" dir=\"auto\" data-line=\"14\">Vai su\u00a0<strong>Edit &gt; Project Settings &gt; XR Plug-in Management<\/strong>\u00a0e apri la scheda\u00a0<strong>Android<\/strong>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"15\">Abilita il plug-in\u00a0<strong>OpenXR<\/strong>\u00a0e il\u00a0<strong>Snapdragon Spaces feature group<\/strong>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"16\">Clicca sul punto esclamativo rosso accanto a\u00a0<strong>OpenXR<\/strong>\u00a0per aprire la finestra\u00a0<strong>OpenXR Project Validation<\/strong>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"17\">Clicca\u00a0<strong>Fix<\/strong>\u00a0accanto a ciascuna voce.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"18\">Applica l&#8217;impostazione &#8220;Enable both Input Systems&#8221;\u00a0<strong>per ultima<\/strong>, poich\u00e9 richiede un riavvio dell&#8217;editor.<\/li><\/ol><blockquote class=\"code-line\" dir=\"auto\" data-line=\"20\"><p class=\"code-line\" dir=\"auto\" data-line=\"20\"><strong>Play In Editor:<\/strong>\u00a0Per le impostazioni aggiuntive relative al workflow in editor vedi la sezione dedicata in\u00a0<a href=\"https:\/\/www.youbiquo.eu\/geckode\/getting-started\/\" data-href=\"01-getting-started.md\">Getting Started<\/a>.<\/p><\/blockquote><h4 id=\"abilita-le-spaces-features\" class=\"code-line\" dir=\"auto\" data-line=\"22\">Abilita le Spaces Features<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"24\">Abilita le features che devono essere attive a runtime in\u00a0<strong>OpenXR Settings<\/strong>. Ciascuna feature corrisponde a un AR Foundation Manager e un XR Subsystem:<\/p><table class=\"code-line\" dir=\"auto\" data-line=\"26\"><thead class=\"code-line\" dir=\"auto\" data-line=\"26\"><tr class=\"code-line\" dir=\"auto\" data-line=\"26\"><th>Feature<\/th><th>AR Foundation Manager<\/th><th>XR Subsystem<\/th><\/tr><\/thead><tbody class=\"code-line\" dir=\"auto\" data-line=\"28\"><tr class=\"code-line\" dir=\"auto\" data-line=\"28\"><td>Base Runtime<\/td><td>AR Session<\/td><td>XRSessionSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"29\"><td>Camera Frame Access<\/td><td>AR Camera Manager<\/td><td>XRCameraSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"30\"><td>Hit Testing<\/td><td>AR Raycast Manager<\/td><td>XRRaycastSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"31\"><td>Image Tracking<\/td><td>AR Tracked Image Manager<\/td><td>XRImageTrackingSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"32\"><td>Plane Detection<\/td><td>AR Plane Manager<\/td><td>XRPlaneSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"33\"><td>Spatial Anchors<\/td><td>AR Anchor Manager<\/td><td>XRAnchorSubsystem<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"34\"><td>Spatial Meshing<\/td><td>AR Mesh Manager<\/td><td>XRMeshSubsystem<\/td><\/tr><\/tbody><\/table><h4 id=\"aggiungi-i-feature-usage-data-allandroid-manifest\" class=\"code-line\" dir=\"auto\" data-line=\"36\">Aggiungi i Feature Usage Data all&#8217;Android Manifest<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"38\">Vai su\u00a0<strong>Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings<\/strong>\u00a0per dichiarare le features richieste o supportate dall&#8217;applicazione per:\u00a0<strong>Hand Tracking<\/strong>,\u00a0<strong>Eye Tracking<\/strong>,\u00a0<strong>Passthrough<\/strong>,\u00a0<strong>Controllers<\/strong>\u00a0e\u00a0<strong>Room Scale<\/strong>.<\/p><blockquote class=\"code-line\" dir=\"auto\" data-line=\"40\"><p class=\"code-line\" dir=\"auto\" data-line=\"40\"><strong>Attenzione:<\/strong>\u00a0Per default tutti i valori\u00a0<code>uses-feature<\/code>\u00a0sono impostati su\u00a0<code>true<\/code>. Imposta su\u00a0<code>false<\/code>\u00a0le features non utilizzate dall&#8217;applicazione per evitare falsi requisiti nel manifest.<\/p><\/blockquote><h4 id=\"importa-i-samples\" class=\"code-line\" dir=\"auto\" data-line=\"42\">Importa i Samples<\/h4><ol class=\"code-line\" dir=\"auto\" data-line=\"44\"><li class=\"code-line\" dir=\"auto\" data-line=\"44\">Apri\u00a0<strong>Window &gt; Package Manager<\/strong>, seleziona il pacchetto Snapdragon Spaces.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"45\">Clicca\u00a0<strong>Import<\/strong>\u00a0su\u00a0<strong>Core Samples<\/strong>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"46\">Aggiungi tutte le scene al build tramite\u00a0<strong>Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings<\/strong>.<\/li><\/ol><blockquote class=\"code-line\" dir=\"auto\" data-line=\"48\"><p class=\"code-line\" dir=\"auto\" data-line=\"48\"><strong>Importante:<\/strong>\u00a0Il sample Camera Frame Access richiede la modalit\u00e0 unsafe abilitata in\u00a0<strong>Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code<\/strong>.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"50\" \/><h3 id=\"passthrough-setup\" class=\"code-line\" dir=\"auto\" data-line=\"52\">Passthrough Setup<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"54\">Il\u00a0<strong>Passthrough<\/strong>\u00a0permette di visualizzare l&#8217;ambiente fisico come overlay di immagine su dispositivi VR. Su LeonardoXR \u00e8 disponibile sui dispositivi compatibili.<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"56\"><li class=\"code-line\" dir=\"auto\" data-line=\"56\">Si attiva tramite il pannello\u00a0<strong>Extend Content<\/strong>\u00a0nell&#8217;UI in-app (visibile solo su dispositivi compatibili con Passthrough).<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"57\">Pu\u00f2 essere attivato anche con i tasti\u00a0<strong>X<\/strong>\u00a0e\u00a0<strong>A<\/strong>\u00a0del controller.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"58\">La funzione di abilitazione \u00e8\u00a0<code>OnPassthroughToggle()<\/code>\u00a0in\u00a0<code>MainMenuSampleController<\/code>, che imposta\u00a0<code>PassthroughToggle<\/code>\u00a0su\u00a0<code>BaseRuntimeFeature<\/code>.<\/li><\/ul><blockquote class=\"code-line\" dir=\"auto\" data-line=\"60\"><p class=\"code-line\" dir=\"auto\" data-line=\"60\"><strong>ATTENZIONE:<\/strong>\u00a0La camera della sessione deve avere il canale\u00a0<strong>Alpha<\/strong>\u00a0del\u00a0<strong>Background<\/strong>\u00a0impostato su\u00a0<strong>0<\/strong>\u00a0per usare il Passthrough correttamente. Viene registrato un avviso automatico se le impostazioni sono errate.<\/p><\/blockquote><p class=\"code-line\" dir=\"auto\" data-line=\"62\">Il delegate\u00a0<code>OnSpacesAppSpaceChange<\/code>\u00a0in\u00a0<code>BaseRuntimeFeature<\/code>\u00a0notifica quando il dispositivo esegue un recenter (attivato tenendo premuto il tasto menu per 2 secondi sul VRX).<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"64\" \/><h2 id=\"scene-setup\" class=\"code-line\" dir=\"auto\" data-line=\"66\">Scene Setup<\/h2><blockquote class=\"code-line\" dir=\"auto\" data-line=\"68\"><p class=\"code-line\" dir=\"auto\" data-line=\"68\"><strong>Nota:<\/strong>\u00a0Questa guida presuppone conoscenza pregressa di AR Foundation e OpenXR. Consulta la documentazione ufficiale di AR Foundation e OpenXR per i concetti base.<\/p><\/blockquote><h4 id=\"gerarchia-minima-della-scena\" class=\"code-line\" dir=\"auto\" data-line=\"70\">Gerarchia Minima della Scena<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"72\">Per abilitare il positional head tracking su LeonardoXR sono necessari i seguenti oggetti:<\/p><pre><code class=\"code-line\" dir=\"auto\" data-line=\"74\">AR Session\nXR Origin\n  \u2514\u2500\u2500 Camera Offset\n        \u2514\u2500\u2500 Main Camera (tagged as \"MainCamera\")\n<\/code><\/pre><p class=\"code-line\" dir=\"auto\" data-line=\"81\">Creali facendo clic destro nella Hierarchy e selezionando\u00a0<strong>XR &gt; AR Session<\/strong>\u00a0oppure\u00a0<strong>XR &gt; XR Origin<\/strong>.<\/p><blockquote class=\"code-line\" dir=\"auto\" data-line=\"83\"><p class=\"code-line\" dir=\"auto\" data-line=\"83\"><strong>Attenzione:<\/strong>\u00a0Disabilita il componente\u00a0<strong>AR Camera Manager<\/strong>\u00a0se non stai recuperando frame RGB dalla camera, per evitare problemi nel lifecycle.<br \/><strong>Importante:<\/strong>\u00a0Disabilita il componente\u00a0<strong>AR Camera Background<\/strong>\u00a0\u2014 non \u00e8 supportato e verr\u00e0 disabilitato automaticamente a runtime.<\/p><\/blockquote><hr class=\"code-line\" dir=\"auto\" data-line=\"86\" \/><h3 id=\"application-lifecycle--compatibilit%C3%A0-con-runtime-precedenti\" class=\"code-line\" dir=\"auto\" data-line=\"88\">Application Lifecycle \u2014 Compatibilit\u00e0 con Runtime Precedenti<\/h3><p class=\"code-line\" dir=\"auto\" data-line=\"90\">La libreria\u00a0<strong>Older Runtime Compatibility<\/strong>\u00a0impedisce l&#8217;avvio dell&#8217;applicazione quando l&#8217;SDK non \u00e8 compatibile con il runtime OpenXR installato sul dispositivo.<\/p><p class=\"code-line\" dir=\"auto\" data-line=\"92\">All&#8217;avvio vengono aggiunte due voci all&#8217;Android manifest:<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"94\"><li class=\"code-line\" dir=\"auto\" data-line=\"94\"><strong><code>targetAPI<\/code><\/strong>\u00a0\u2014 corrisponde alla versione del runtime OpenXR inclusa nell&#8217;SDK.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"95\"><strong><code>minAPI<\/code><\/strong>\u00a0\u2014 la versione minima del runtime che ciascuna feature supporta.<\/li><\/ul><blockquote class=\"code-line\" dir=\"auto\" data-line=\"97\"><p class=\"code-line\" dir=\"auto\" data-line=\"97\"><strong>Versione:<\/strong>\u00a0A partire da Snapdragon Spaces 1.0.4, il\u00a0<code>minAPI<\/code>\u00a0per tutte le features \u00e8\u00a0<code>0.22.0<\/code>.<\/p><\/blockquote><h4 id=\"risultati-di-compatibilit%C3%A0\" class=\"code-line\" dir=\"auto\" data-line=\"99\">Risultati di Compatibilit\u00e0<\/h4><table class=\"code-line\" dir=\"auto\" data-line=\"101\"><thead class=\"code-line\" dir=\"auto\" data-line=\"101\"><tr class=\"code-line\" dir=\"auto\" data-line=\"101\"><th>Risultato<\/th><th>Descrizione<\/th><\/tr><\/thead><tbody class=\"code-line\" dir=\"auto\" data-line=\"103\"><tr class=\"code-line\" dir=\"auto\" data-line=\"103\"><td><strong>Success<\/strong><\/td><td>Nessuna incompatibilit\u00e0 rilevata.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"104\"><td><strong>Error Runtime Failure<\/strong><\/td><td>Errore del runtime OpenXR.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"105\"><td><strong>Error Validation Failure<\/strong><\/td><td>Errore nella validazione Older Runtime Compatibility.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"106\"><td><strong>Error Uninitialized System<\/strong><\/td><td>Errore per mancanza di inizializzazione.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"107\"><td><strong>Error Runtime Too Old For Application<\/strong><\/td><td>Il runtime installato \u00e8 troppo vecchio per l&#8217;SDK.<\/td><\/tr><tr class=\"code-line\" dir=\"auto\" data-line=\"108\"><td><strong>Error Application Too Old For Runtime<\/strong><\/td><td>L&#8217;SDK \u00e8 troppo vecchio per il runtime installato.<\/td><\/tr><\/tbody><\/table><p class=\"code-line\" dir=\"auto\" data-line=\"110\">Quando viene rilevata un&#8217;incompatibilit\u00e0 compare un popup con un messaggio di errore e un pulsante\u00a0<strong>Quit<\/strong>. Per le app con Dual Render Fusion l&#8217;utente viene informato ma l&#8217;applicazione pu\u00f2 comunque avviarsi.<\/p><hr class=\"code-line\" dir=\"auto\" data-line=\"112\" \/><h3 id=\"known-issues--vrmr-su-leonardoxr\" class=\"code-line\" dir=\"auto\" data-line=\"114\">Known Issues \u2014 VR\/MR su LeonardoXR<\/h3><blockquote class=\"code-line\" dir=\"auto\" data-line=\"116\"><p class=\"code-line\" dir=\"auto\" data-line=\"116\">Per problemi non elencati qui, consulta le known issues generali della piattaforma Snapdragon Spaces.<\/p><\/blockquote><h4 id=\"gradle-build-issue\" class=\"code-line\" dir=\"auto\" data-line=\"118\">Gradle Build Issue<\/h4><p class=\"code-line\" dir=\"auto\" data-line=\"120\">L&#8217;aggiunta di un archivio controller personalizzato pu\u00f2 causare errori di caching Gradle. Eliminare la cartella\u00a0<code>Temp &gt; gradleOut<\/code>\u00a0risolve generalmente il problema.<\/p><p>AR Foundation Issues<\/p><ul class=\"code-line\" dir=\"auto\" data-line=\"124\"><li class=\"code-line\" dir=\"auto\" data-line=\"124\"><strong>AR Raycast Hit restituisce Trackable ID errato<\/strong>\u00a0\u2014\u00a0<code>ARRaycastHit.trackableId<\/code>\u00a0restituisce sempre\u00a0<code>0-0<\/code>.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"125\"><strong>Plane Detection bloccata<\/strong>\u00a0\u2014 La triangolazione mesh entra in un loop infinito in AR Foundation 6.2.1.<\/li><\/ul><h4 id=\"xrit-issues\" class=\"code-line\" dir=\"auto\" data-line=\"127\">XRIT Issues<\/h4><ul class=\"code-line\" dir=\"auto\" data-line=\"129\"><li class=\"code-line\" dir=\"auto\" data-line=\"129\"><strong>AR Raycast Manager aggiunto automaticamente<\/strong>\u00a0\u2014 XRIT 3.x aggiunge un\u00a0<code>AR Raycast Manager<\/code>\u00a0quando \u00e8 presente un\u00a0<code>XR Raycast Interactor<\/code>, abilitando lo Spatial Meshing indipendentemente dal flag\u00a0<code>EnableARRaycasting<\/code>. Questo pu\u00f2 ridurre le performance.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"130\"><strong>Propriet\u00e0 AR Mesh Manager non supportate<\/strong>\u00a0\u2014 L&#8217;uso di propriet\u00e0 non supportate genera avvisi a runtime.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"131\"><strong>AR Camera Manager \/ AR Camera Background Issues<\/strong>\u00a0\u2014 Spostarsi tra scene con\u00a0<code>AR Camera Manager<\/code>\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0<code>AR Camera Background<\/code>\u00a0per evitare problemi di rendering.<\/li><\/ul><h4 id=\"play-in-editor-known-issues\" class=\"code-line\" dir=\"auto\" data-line=\"133\">Play In Editor Known Issues<\/h4><ul class=\"code-line\" dir=\"auto\" data-line=\"135\"><li class=\"code-line\" dir=\"auto\" data-line=\"135\"><strong>Memory Leak in Camera Access Simulation<\/strong>\u00a0\u2014 Risolto in AR Foundation 6.0+.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"136\"><strong>AR Mesh Manager crash senza Normals<\/strong>\u00a0\u2014 Aggiorna AR Foundation o abilita le normals.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"137\"><strong>QR Code Tracking non caricato in Simulation<\/strong>\u00a0\u2014 Non esiste un subsystem di simulazione; aggira i controlli nelle build editor.<\/li><li class=\"code-line\" dir=\"auto\" data-line=\"138\"><strong>ScriptableSingleton Warning<\/strong>\u00a0\u2014 Risolto in AR Foundation 5.1.2+.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>VR\/MR &#8211; LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK Version:\u00a01.0.2Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 Configurazione Manuale del Progetto Unity \u00c8 raccomandato usare il\u00a0Configuration Tool\u00a0per la configurazione iniziale del progetto (vedi\u00a0Getting Started). Questa guida descrive i passi manuali equivalenti per chi preferisce un controllo diretto sulle impostazioni. Modifica le Project Settings Vai su\u00a0Edit &gt; Project Settings &gt; XR Plug-in Management\u00a0e apri la scheda\u00a0Android. Abilita il plug-in\u00a0OpenXR\u00a0e il\u00a0Snapdragon Spaces feature group. Clicca sul punto esclamativo rosso accanto a\u00a0OpenXR\u00a0per aprire la finestra\u00a0OpenXR Project Validation. Clicca\u00a0Fix\u00a0accanto a ciascuna voce. Applica l&#8217;impostazione &#8220;Enable both Input Systems&#8221;\u00a0per ultima, poich\u00e9 richiede un riavvio dell&#8217;editor. Play In Editor:\u00a0Per le impostazioni aggiuntive relative al workflow in editor vedi la sezione dedicata in\u00a0Getting Started. Abilita le Spaces Features Abilita le features che devono essere attive a runtime in\u00a0OpenXR 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 Aggiungi i Feature Usage Data all&#8217;Android Manifest Vai su\u00a0Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings\u00a0per dichiarare le features richieste o supportate dall&#8217;applicazione per:\u00a0Hand Tracking,\u00a0Eye Tracking,\u00a0Passthrough,\u00a0Controllers\u00a0e\u00a0Room Scale. Attenzione:\u00a0Per default tutti i valori\u00a0uses-feature\u00a0sono impostati su\u00a0true. Imposta su\u00a0false\u00a0le features non utilizzate dall&#8217;applicazione per evitare falsi requisiti nel manifest. Importa i Samples Apri\u00a0Window &gt; Package Manager, seleziona il pacchetto Snapdragon Spaces. Clicca\u00a0Import\u00a0su\u00a0Core Samples. Aggiungi tutte le scene al build tramite\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Importante:\u00a0Il sample Camera Frame Access richiede la modalit\u00e0 unsafe abilitata in\u00a0Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code. Passthrough Setup Il\u00a0Passthrough\u00a0permette di visualizzare l&#8217;ambiente fisico come overlay di immagine su dispositivi VR. Su LeonardoXR \u00e8 disponibile sui dispositivi compatibili. Si attiva tramite il pannello\u00a0Extend Content\u00a0nell&#8217;UI in-app (visibile solo su dispositivi compatibili con Passthrough). Pu\u00f2 essere attivato anche con i tasti\u00a0X\u00a0e\u00a0A\u00a0del controller. La funzione di abilitazione \u00e8\u00a0OnPassthroughToggle()\u00a0in\u00a0MainMenuSampleController, che imposta\u00a0PassthroughToggle\u00a0su\u00a0BaseRuntimeFeature. ATTENZIONE:\u00a0La camera della sessione deve avere il canale\u00a0Alpha\u00a0del\u00a0Background\u00a0impostato su\u00a00\u00a0per usare il Passthrough correttamente. Viene registrato un avviso automatico se le impostazioni sono errate. Il delegate\u00a0OnSpacesAppSpaceChange\u00a0in\u00a0BaseRuntimeFeature\u00a0notifica quando il dispositivo esegue un recenter (attivato tenendo premuto il tasto menu per 2 secondi sul VRX). Scene Setup Nota:\u00a0Questa guida presuppone conoscenza pregressa di AR Foundation e OpenXR. Consulta la documentazione ufficiale di AR Foundation e OpenXR per i concetti base. Gerarchia Minima della Scena Per abilitare il positional head tracking su LeonardoXR sono necessari i seguenti oggetti: AR Session XR Origin \u2514\u2500\u2500 Camera Offset \u2514\u2500\u2500 Main Camera (tagged as &#8220;MainCamera&#8221;) Creali facendo clic destro nella Hierarchy e selezionando\u00a0XR &gt; AR Session\u00a0oppure\u00a0XR &gt; XR Origin. Attenzione:\u00a0Disabilita il componente\u00a0AR Camera Manager\u00a0se non stai recuperando frame RGB dalla camera, per evitare problemi nel lifecycle.Importante:\u00a0Disabilita il componente\u00a0AR Camera Background\u00a0\u2014 non \u00e8 supportato e verr\u00e0 disabilitato automaticamente a runtime. Application Lifecycle \u2014 Compatibilit\u00e0 con Runtime Precedenti La libreria\u00a0Older Runtime Compatibility\u00a0impedisce l&#8217;avvio dell&#8217;applicazione quando l&#8217;SDK non \u00e8 compatibile con il runtime OpenXR installato sul dispositivo. All&#8217;avvio vengono aggiunte due voci all&#8217;Android manifest: targetAPI\u00a0\u2014 corrisponde alla versione del runtime OpenXR inclusa nell&#8217;SDK. minAPI\u00a0\u2014 la versione minima del runtime che ciascuna feature supporta. Versione:\u00a0A partire da Snapdragon Spaces 1.0.4, il\u00a0minAPI\u00a0per tutte le features \u00e8\u00a00.22.0. Risultati di Compatibilit\u00e0 Risultato Descrizione Success Nessuna incompatibilit\u00e0 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 \u00e8 troppo vecchio per l&#8217;SDK. Error Application Too Old For Runtime L&#8217;SDK \u00e8 troppo vecchio per il runtime installato. Quando viene rilevata un&#8217;incompatibilit\u00e0 compare un popup con un messaggio di errore e un pulsante\u00a0Quit. Per le app con Dual Render Fusion l&#8217;utente viene informato ma l&#8217;applicazione pu\u00f2 comunque avviarsi. Known Issues \u2014 VR\/MR su LeonardoXR Per problemi non elencati qui, consulta le known issues generali della piattaforma Snapdragon Spaces. Gradle Build Issue L&#8217;aggiunta di un archivio controller personalizzato pu\u00f2 causare errori di caching Gradle. Eliminare la cartella\u00a0Temp &gt; gradleOut\u00a0risolve generalmente il problema. AR Foundation Issues AR Raycast Hit restituisce Trackable ID errato\u00a0\u2014\u00a0ARRaycastHit.trackableId\u00a0restituisce sempre\u00a00-0. Plane Detection bloccata\u00a0\u2014 La triangolazione mesh entra in un loop infinito in AR Foundation 6.2.1. XRIT Issues AR Raycast Manager aggiunto automaticamente\u00a0\u2014 XRIT 3.x aggiunge un\u00a0AR Raycast Manager\u00a0quando \u00e8 presente un\u00a0XR Raycast Interactor, abilitando lo Spatial Meshing indipendentemente dal flag\u00a0EnableARRaycasting. Questo pu\u00f2 ridurre le performance. Propriet\u00e0 AR Mesh Manager non supportate\u00a0\u2014 L&#8217;uso di propriet\u00e0 non supportate genera avvisi a runtime. AR Camera Manager \/ AR Camera Background Issues\u00a0\u2014 Spostarsi tra scene con\u00a0AR Camera Manager\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0AR Camera Background\u00a0per evitare problemi di rendering. Play In Editor Known Issues Memory Leak in Camera Access Simulation\u00a0\u2014 Risolto in AR Foundation 6.0+. AR Mesh Manager crash senza Normals\u00a0\u2014 Aggiorna AR Foundation o abilita le normals. QR Code Tracking non caricato in Simulation\u00a0\u2014 Non esiste un subsystem di simulazione; aggira i controlli nelle build editor. ScriptableSingleton Warning\u00a0\u2014 Risolto in AR Foundation 5.1.2+.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-742","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>VR\/MR - Leonardo XR SDK - Geckode!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VR\/MR - Leonardo XR SDK - Geckode!\" \/>\n<meta property=\"og:description\" content=\"VR\/MR &#8211; LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK Version:\u00a01.0.2Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 Configurazione Manuale del Progetto Unity \u00c8 raccomandato usare il\u00a0Configuration Tool\u00a0per la configurazione iniziale del progetto (vedi\u00a0Getting Started). Questa guida descrive i passi manuali equivalenti per chi preferisce un controllo diretto sulle impostazioni. Modifica le Project Settings Vai su\u00a0Edit &gt; Project Settings &gt; XR Plug-in Management\u00a0e apri la scheda\u00a0Android. Abilita il plug-in\u00a0OpenXR\u00a0e il\u00a0Snapdragon Spaces feature group. Clicca sul punto esclamativo rosso accanto a\u00a0OpenXR\u00a0per aprire la finestra\u00a0OpenXR Project Validation. Clicca\u00a0Fix\u00a0accanto a ciascuna voce. Applica l&#8217;impostazione &#8220;Enable both Input Systems&#8221;\u00a0per ultima, poich\u00e9 richiede un riavvio dell&#8217;editor. Play In Editor:\u00a0Per le impostazioni aggiuntive relative al workflow in editor vedi la sezione dedicata in\u00a0Getting Started. Abilita le Spaces Features Abilita le features che devono essere attive a runtime in\u00a0OpenXR 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 Aggiungi i Feature Usage Data all&#8217;Android Manifest Vai su\u00a0Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings\u00a0per dichiarare le features richieste o supportate dall&#8217;applicazione per:\u00a0Hand Tracking,\u00a0Eye Tracking,\u00a0Passthrough,\u00a0Controllers\u00a0e\u00a0Room Scale. Attenzione:\u00a0Per default tutti i valori\u00a0uses-feature\u00a0sono impostati su\u00a0true. Imposta su\u00a0false\u00a0le features non utilizzate dall&#8217;applicazione per evitare falsi requisiti nel manifest. Importa i Samples Apri\u00a0Window &gt; Package Manager, seleziona il pacchetto Snapdragon Spaces. Clicca\u00a0Import\u00a0su\u00a0Core Samples. Aggiungi tutte le scene al build tramite\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Importante:\u00a0Il sample Camera Frame Access richiede la modalit\u00e0 unsafe abilitata in\u00a0Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code. Passthrough Setup Il\u00a0Passthrough\u00a0permette di visualizzare l&#8217;ambiente fisico come overlay di immagine su dispositivi VR. Su LeonardoXR \u00e8 disponibile sui dispositivi compatibili. Si attiva tramite il pannello\u00a0Extend Content\u00a0nell&#8217;UI in-app (visibile solo su dispositivi compatibili con Passthrough). Pu\u00f2 essere attivato anche con i tasti\u00a0X\u00a0e\u00a0A\u00a0del controller. La funzione di abilitazione \u00e8\u00a0OnPassthroughToggle()\u00a0in\u00a0MainMenuSampleController, che imposta\u00a0PassthroughToggle\u00a0su\u00a0BaseRuntimeFeature. ATTENZIONE:\u00a0La camera della sessione deve avere il canale\u00a0Alpha\u00a0del\u00a0Background\u00a0impostato su\u00a00\u00a0per usare il Passthrough correttamente. Viene registrato un avviso automatico se le impostazioni sono errate. Il delegate\u00a0OnSpacesAppSpaceChange\u00a0in\u00a0BaseRuntimeFeature\u00a0notifica quando il dispositivo esegue un recenter (attivato tenendo premuto il tasto menu per 2 secondi sul VRX). Scene Setup Nota:\u00a0Questa guida presuppone conoscenza pregressa di AR Foundation e OpenXR. Consulta la documentazione ufficiale di AR Foundation e OpenXR per i concetti base. Gerarchia Minima della Scena Per abilitare il positional head tracking su LeonardoXR sono necessari i seguenti oggetti: AR Session XR Origin \u2514\u2500\u2500 Camera Offset \u2514\u2500\u2500 Main Camera (tagged as &quot;MainCamera&quot;) Creali facendo clic destro nella Hierarchy e selezionando\u00a0XR &gt; AR Session\u00a0oppure\u00a0XR &gt; XR Origin. Attenzione:\u00a0Disabilita il componente\u00a0AR Camera Manager\u00a0se non stai recuperando frame RGB dalla camera, per evitare problemi nel lifecycle.Importante:\u00a0Disabilita il componente\u00a0AR Camera Background\u00a0\u2014 non \u00e8 supportato e verr\u00e0 disabilitato automaticamente a runtime. Application Lifecycle \u2014 Compatibilit\u00e0 con Runtime Precedenti La libreria\u00a0Older Runtime Compatibility\u00a0impedisce l&#8217;avvio dell&#8217;applicazione quando l&#8217;SDK non \u00e8 compatibile con il runtime OpenXR installato sul dispositivo. All&#8217;avvio vengono aggiunte due voci all&#8217;Android manifest: targetAPI\u00a0\u2014 corrisponde alla versione del runtime OpenXR inclusa nell&#8217;SDK. minAPI\u00a0\u2014 la versione minima del runtime che ciascuna feature supporta. Versione:\u00a0A partire da Snapdragon Spaces 1.0.4, il\u00a0minAPI\u00a0per tutte le features \u00e8\u00a00.22.0. Risultati di Compatibilit\u00e0 Risultato Descrizione Success Nessuna incompatibilit\u00e0 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 \u00e8 troppo vecchio per l&#8217;SDK. Error Application Too Old For Runtime L&#8217;SDK \u00e8 troppo vecchio per il runtime installato. Quando viene rilevata un&#8217;incompatibilit\u00e0 compare un popup con un messaggio di errore e un pulsante\u00a0Quit. Per le app con Dual Render Fusion l&#8217;utente viene informato ma l&#8217;applicazione pu\u00f2 comunque avviarsi. Known Issues \u2014 VR\/MR su LeonardoXR Per problemi non elencati qui, consulta le known issues generali della piattaforma Snapdragon Spaces. Gradle Build Issue L&#8217;aggiunta di un archivio controller personalizzato pu\u00f2 causare errori di caching Gradle. Eliminare la cartella\u00a0Temp &gt; gradleOut\u00a0risolve generalmente il problema. AR Foundation Issues AR Raycast Hit restituisce Trackable ID errato\u00a0\u2014\u00a0ARRaycastHit.trackableId\u00a0restituisce sempre\u00a00-0. Plane Detection bloccata\u00a0\u2014 La triangolazione mesh entra in un loop infinito in AR Foundation 6.2.1. XRIT Issues AR Raycast Manager aggiunto automaticamente\u00a0\u2014 XRIT 3.x aggiunge un\u00a0AR Raycast Manager\u00a0quando \u00e8 presente un\u00a0XR Raycast Interactor, abilitando lo Spatial Meshing indipendentemente dal flag\u00a0EnableARRaycasting. Questo pu\u00f2 ridurre le performance. Propriet\u00e0 AR Mesh Manager non supportate\u00a0\u2014 L&#8217;uso di propriet\u00e0 non supportate genera avvisi a runtime. AR Camera Manager \/ AR Camera Background Issues\u00a0\u2014 Spostarsi tra scene con\u00a0AR Camera Manager\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0AR Camera Background\u00a0per evitare problemi di rendering. Play In Editor Known Issues Memory Leak in Camera Access Simulation\u00a0\u2014 Risolto in AR Foundation 6.0+. AR Mesh Manager crash senza Normals\u00a0\u2014 Aggiorna AR Foundation o abilita le normals. QR Code Tracking non caricato in Simulation\u00a0\u2014 Non esiste un subsystem di simulazione; aggira i controlli nelle build editor. ScriptableSingleton Warning\u00a0\u2014 Risolto in AR Foundation 5.1.2+.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/\" \/>\n<meta property=\"og:site_name\" content=\"Geckode!\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T14:38:43+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/\",\"name\":\"VR\/MR - Leonardo XR SDK - Geckode!\",\"isPartOf\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#website\"},\"datePublished\":\"2026-03-25T15:30:23+00:00\",\"dateModified\":\"2026-04-09T14:38:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.youbiquo.eu\/geckode\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VR\/MR &#8211; Leonardo XR SDK\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#website\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/\",\"name\":\"Geckode!\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.youbiquo.eu\/geckode\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#organization\",\"name\":\"Geckode!\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png\",\"contentUrl\":\"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png\",\"width\":778,\"height\":778,\"caption\":\"Geckode!\"},\"image\":{\"@id\":\"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"VR\/MR - Leonardo XR SDK - Geckode!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/","og_locale":"en_US","og_type":"article","og_title":"VR\/MR - Leonardo XR SDK - Geckode!","og_description":"VR\/MR &#8211; LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK VR\/MR \u2014 LeonardoXR SDK Version:\u00a01.0.2Target Device:\u00a0Youbiquo Leonardo XRBase SDK:\u00a0Snapdragon Spaces 1.0.4 Configurazione Manuale del Progetto Unity \u00c8 raccomandato usare il\u00a0Configuration Tool\u00a0per la configurazione iniziale del progetto (vedi\u00a0Getting Started). Questa guida descrive i passi manuali equivalenti per chi preferisce un controllo diretto sulle impostazioni. Modifica le Project Settings Vai su\u00a0Edit &gt; Project Settings &gt; XR Plug-in Management\u00a0e apri la scheda\u00a0Android. Abilita il plug-in\u00a0OpenXR\u00a0e il\u00a0Snapdragon Spaces feature group. Clicca sul punto esclamativo rosso accanto a\u00a0OpenXR\u00a0per aprire la finestra\u00a0OpenXR Project Validation. Clicca\u00a0Fix\u00a0accanto a ciascuna voce. Applica l&#8217;impostazione &#8220;Enable both Input Systems&#8221;\u00a0per ultima, poich\u00e9 richiede un riavvio dell&#8217;editor. Play In Editor:\u00a0Per le impostazioni aggiuntive relative al workflow in editor vedi la sezione dedicata in\u00a0Getting Started. Abilita le Spaces Features Abilita le features che devono essere attive a runtime in\u00a0OpenXR 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 Aggiungi i Feature Usage Data all&#8217;Android Manifest Vai su\u00a0Edit &gt; Project Settings &gt; Snapdragon Spaces Launcher Settings\u00a0per dichiarare le features richieste o supportate dall&#8217;applicazione per:\u00a0Hand Tracking,\u00a0Eye Tracking,\u00a0Passthrough,\u00a0Controllers\u00a0e\u00a0Room Scale. Attenzione:\u00a0Per default tutti i valori\u00a0uses-feature\u00a0sono impostati su\u00a0true. Imposta su\u00a0false\u00a0le features non utilizzate dall&#8217;applicazione per evitare falsi requisiti nel manifest. Importa i Samples Apri\u00a0Window &gt; Package Manager, seleziona il pacchetto Snapdragon Spaces. Clicca\u00a0Import\u00a0su\u00a0Core Samples. Aggiungi tutte le scene al build tramite\u00a0Window &gt; XR &gt; Snapdragon Spaces &gt; Add Scenes to Build Settings. Importante:\u00a0Il sample Camera Frame Access richiede la modalit\u00e0 unsafe abilitata in\u00a0Player Settings &gt; Android &gt; Other Settings &gt; Script Compilation &gt; Allow &#8216;unsafe&#8217; Code. Passthrough Setup Il\u00a0Passthrough\u00a0permette di visualizzare l&#8217;ambiente fisico come overlay di immagine su dispositivi VR. Su LeonardoXR \u00e8 disponibile sui dispositivi compatibili. Si attiva tramite il pannello\u00a0Extend Content\u00a0nell&#8217;UI in-app (visibile solo su dispositivi compatibili con Passthrough). Pu\u00f2 essere attivato anche con i tasti\u00a0X\u00a0e\u00a0A\u00a0del controller. La funzione di abilitazione \u00e8\u00a0OnPassthroughToggle()\u00a0in\u00a0MainMenuSampleController, che imposta\u00a0PassthroughToggle\u00a0su\u00a0BaseRuntimeFeature. ATTENZIONE:\u00a0La camera della sessione deve avere il canale\u00a0Alpha\u00a0del\u00a0Background\u00a0impostato su\u00a00\u00a0per usare il Passthrough correttamente. Viene registrato un avviso automatico se le impostazioni sono errate. Il delegate\u00a0OnSpacesAppSpaceChange\u00a0in\u00a0BaseRuntimeFeature\u00a0notifica quando il dispositivo esegue un recenter (attivato tenendo premuto il tasto menu per 2 secondi sul VRX). Scene Setup Nota:\u00a0Questa guida presuppone conoscenza pregressa di AR Foundation e OpenXR. Consulta la documentazione ufficiale di AR Foundation e OpenXR per i concetti base. Gerarchia Minima della Scena Per abilitare il positional head tracking su LeonardoXR sono necessari i seguenti oggetti: AR Session XR Origin \u2514\u2500\u2500 Camera Offset \u2514\u2500\u2500 Main Camera (tagged as \"MainCamera\") Creali facendo clic destro nella Hierarchy e selezionando\u00a0XR &gt; AR Session\u00a0oppure\u00a0XR &gt; XR Origin. Attenzione:\u00a0Disabilita il componente\u00a0AR Camera Manager\u00a0se non stai recuperando frame RGB dalla camera, per evitare problemi nel lifecycle.Importante:\u00a0Disabilita il componente\u00a0AR Camera Background\u00a0\u2014 non \u00e8 supportato e verr\u00e0 disabilitato automaticamente a runtime. Application Lifecycle \u2014 Compatibilit\u00e0 con Runtime Precedenti La libreria\u00a0Older Runtime Compatibility\u00a0impedisce l&#8217;avvio dell&#8217;applicazione quando l&#8217;SDK non \u00e8 compatibile con il runtime OpenXR installato sul dispositivo. All&#8217;avvio vengono aggiunte due voci all&#8217;Android manifest: targetAPI\u00a0\u2014 corrisponde alla versione del runtime OpenXR inclusa nell&#8217;SDK. minAPI\u00a0\u2014 la versione minima del runtime che ciascuna feature supporta. Versione:\u00a0A partire da Snapdragon Spaces 1.0.4, il\u00a0minAPI\u00a0per tutte le features \u00e8\u00a00.22.0. Risultati di Compatibilit\u00e0 Risultato Descrizione Success Nessuna incompatibilit\u00e0 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 \u00e8 troppo vecchio per l&#8217;SDK. Error Application Too Old For Runtime L&#8217;SDK \u00e8 troppo vecchio per il runtime installato. Quando viene rilevata un&#8217;incompatibilit\u00e0 compare un popup con un messaggio di errore e un pulsante\u00a0Quit. Per le app con Dual Render Fusion l&#8217;utente viene informato ma l&#8217;applicazione pu\u00f2 comunque avviarsi. Known Issues \u2014 VR\/MR su LeonardoXR Per problemi non elencati qui, consulta le known issues generali della piattaforma Snapdragon Spaces. Gradle Build Issue L&#8217;aggiunta di un archivio controller personalizzato pu\u00f2 causare errori di caching Gradle. Eliminare la cartella\u00a0Temp &gt; gradleOut\u00a0risolve generalmente il problema. AR Foundation Issues AR Raycast Hit restituisce Trackable ID errato\u00a0\u2014\u00a0ARRaycastHit.trackableId\u00a0restituisce sempre\u00a00-0. Plane Detection bloccata\u00a0\u2014 La triangolazione mesh entra in un loop infinito in AR Foundation 6.2.1. XRIT Issues AR Raycast Manager aggiunto automaticamente\u00a0\u2014 XRIT 3.x aggiunge un\u00a0AR Raycast Manager\u00a0quando \u00e8 presente un\u00a0XR Raycast Interactor, abilitando lo Spatial Meshing indipendentemente dal flag\u00a0EnableARRaycasting. Questo pu\u00f2 ridurre le performance. Propriet\u00e0 AR Mesh Manager non supportate\u00a0\u2014 L&#8217;uso di propriet\u00e0 non supportate genera avvisi a runtime. AR Camera Manager \/ AR Camera Background Issues\u00a0\u2014 Spostarsi tra scene con\u00a0AR Camera Manager\u00a0abilitato pu\u00f2 causare freeze. Disabilita\u00a0AR Camera Background\u00a0per evitare problemi di rendering. Play In Editor Known Issues Memory Leak in Camera Access Simulation\u00a0\u2014 Risolto in AR Foundation 6.0+. AR Mesh Manager crash senza Normals\u00a0\u2014 Aggiorna AR Foundation o abilita le normals. QR Code Tracking non caricato in Simulation\u00a0\u2014 Non esiste un subsystem di simulazione; aggira i controlli nelle build editor. ScriptableSingleton Warning\u00a0\u2014 Risolto in AR Foundation 5.1.2+.","og_url":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/","og_site_name":"Geckode!","article_modified_time":"2026-04-09T14:38:43+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/","url":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/","name":"VR\/MR - Leonardo XR SDK - Geckode!","isPartOf":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#website"},"datePublished":"2026-03-25T15:30:23+00:00","dateModified":"2026-04-09T14:38:43+00:00","breadcrumb":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.youbiquo.eu\/geckode\/vr-mr-leonardo-xr-sdk\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.youbiquo.eu\/geckode\/"},{"@type":"ListItem","position":2,"name":"VR\/MR &#8211; Leonardo XR SDK"}]},{"@type":"WebSite","@id":"https:\/\/www.youbiquo.eu\/geckode\/#website","url":"https:\/\/www.youbiquo.eu\/geckode\/","name":"Geckode!","description":"","publisher":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.youbiquo.eu\/geckode\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.youbiquo.eu\/geckode\/#organization","name":"Geckode!","url":"https:\/\/www.youbiquo.eu\/geckode\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/","url":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png","contentUrl":"https:\/\/www.youbiquo.eu\/geckode\/wp-content\/uploads\/sites\/7\/2026\/02\/Gemini_Generated_Image_ns1dvvns1dvvns1d-e1774014413830.png","width":778,"height":778,"caption":"Geckode!"},"image":{"@id":"https:\/\/www.youbiquo.eu\/geckode\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/comments?post=742"}],"version-history":[{"count":16,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/742\/revisions"}],"predecessor-version":[{"id":1192,"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/pages\/742\/revisions\/1192"}],"wp:attachment":[{"href":"https:\/\/www.youbiquo.eu\/geckode\/wp-json\/wp\/v2\/media?parent=742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}