ARCore per Jetpack XR
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Versione alpha |
---|---|---|---|---|
12 dicembre 2024 | - | - | - | 1.0.0-alpha01 |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza da ARCore per Jetpack XR, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli elementi necessari nel file build.gradle
per la tua app o il tuo modulo:
Alla moda
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha01") }
Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.
Versione 1.0
Versione 1.0.0-alpha01
12 dicembre 2024
androidx.xr.arcore:arcore-* 1.0.0-alpha01
viene rilasciato.
Funzionalità della versione iniziale
Ispirata alla libreria ARCore esistente, la libreria ARCore per Jetpack XR offre funzionalità per integrare i contenuti digitali con il mondo reale. Questa libreria include il monitoraggio dei movimenti, gli ancoraggi permanenti, i test di corrispondenza e l'identificazione dei piani con etichettatura semantica (ad esempio pavimento, pareti e piani dei tavoli). Consulta la guida per gli sviluppatori per scoprire di più sull'utilizzo di ARCore per Jetpack XR.
Session
: ARCore per Jetpack XR utilizza il runtime Jetpack XR per potenziare le sue funzionalità. Utilizzerai una sessione per interagire con la maggior parte delle API ARCore per Jetpack XR, quindi dai un'occhiata alla relativa documentazione.Plane
: utilizza i piani per comprendere il mondo che ti circonda. Ogni piano ha unLabel
che lo descrive semanticamente. Puoi utilizzaresubscribe
per ricevere una notifica sugli ultimi piani rilevati ostate
per ricevere una notifica sulle modifiche a un piano specifico.Anchor
: un collegamento tra un oggetto virtuale e una posizione reale. Le ancore possono essere collegate a una posizione specifica nello spazio (utilizzandocreate
) o a unTrackable
(utilizzandocreateAnchor
).Le ancore possono essere riutilizzate in più sessioni. Puoi utilizzare
persist
per archiviarli,getPersistedAnchorUuids
per enumerarli eload
per recuperarli. Assicurati diunpersist
le licenze quando non sono più in uso.Le ancore sono interoperabili tra ARCore per Jetpack XR e Jetpack SceneCore. Puoi creare un
AnchorEntity
utilizzando un'ancora o, se hai già un'entità Anchor, puoi utilizzaregetAnchor
per recuperare l'ancora di supporto.Offri interazioni naturali con gli utenti utilizzando
hitTest
. Un hitTest utilizza unRay
per determinare quali contenuti interseca e per creare unAnchor
da quella posizione. Valuta la possibilità di eseguire un hitTest da unInputEvent
.
Problemi noti
Potrebbe esserci un ritardo tra la chiamata a
unpersist
e la rimozione del relativo UUID dai risultati restituiti dagetPersistedAnchorUuids
.create
non convaliderà il fatto che il sistema disponga di risorse sufficienti per restituire nuovi ancoranti. La creazione di un numero eccessivo di ancore potrebbe causare un arresto anomalo.Al momento non è supportata la persistenza di un'ancora che è stata precedentemente impostata come persistente e non persistente.
L'utilizzo nell'emulatore è supportato, ma il comportamento potrebbe non essere così stabile come quando viene eseguito su un dispositivo reale. In particolare, le chiamate a
create
potrebbero non riuscire con un errore di codice nativo e terminare immediatamente l'attività.In alcuni casi, potrebbe essere generato erroneamente un
RuntimeException
quando viene chiamatapersist
con il messaggio "L'ancora non è stata mantenuta". In questi casi, la funzione andrà comunque a buon fine e l'ancora verrà mantenuta. Come soluzione alternativa, ti consigliamo di racchiudere la chiamata apersist
in un bloccotry
.