ARCore untuk Jetpack XR

Hadirkan konten digital ke dunia nyata dengan kemampuan persepsi.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
12 Desember 2024 - - - 1.0.0-alpha01

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada ARCore untuk Jetpack XR, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.0

Versi 1.0.0-alpha01

12 Desember 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 dirilis.

Fitur rilis awal

Terinspirasi oleh library ARCore yang ada, library ARCore untuk Jetpack XR menyediakan kemampuan untuk memadukan konten digital dengan dunia nyata. Library ini mencakup pelacakan gerakan, anchor persisten, pengujian hit, dan identifikasi bidang dengan pemberian label semantik (misalnya, lantai, dinding, dan permukaan meja). Lihat panduan developer untuk mempelajari lebih lanjut cara menggunakan ARCore untuk Jetpack XR.

  • Session: ARCore untuk Jetpack XR menggunakan Jetpack XR Runtime di balik layar untuk mendukung fungsinya. Anda akan menggunakan Sesi untuk berinteraksi dengan sebagian besar ARCore untuk Jetpack XR API, jadi lihat dokumentasinya.

  • Plane: Menggunakan bidang untuk memahami dunia di sekitar Anda. Setiap bidang memiliki Label yang mendeskripsikannya secara semantik. Anda dapat menggunakan subscribe untuk mendapatkan notifikasi tentang bidang terbaru yang terdeteksi atau state untuk mendapatkan notifikasi tentang perubahan pada bidang tertentu.

  • Anchor: Link antara objek virtual dan lokasi di dunia nyata. Anchor dapat dilampirkan ke lokasi tertentu dalam ruang (menggunakan create) atau Trackable (menggunakan createAnchor).

    • Anchor dapat digunakan kembali di seluruh sesi. Anda dapat menggunakan persist untuk menyimpannya, getPersistedAnchorUuids untuk menghitungnya, dan load untuk mengambilnya. Pastikan Anda unpersist setelah tidak lagi digunakan.

    • Anchor dapat dioperasikan secara interoperabilitas antara ARCore untuk Jetpack XR dan Jetpack SceneCore. Anda dapat membuat AnchorEntity menggunakan anchor atau, jika sudah memiliki AnchorEntity, Anda dapat menggunakan getAnchor untuk mengambil anchor pendukungnya.

    • Tawarkan interaksi pengguna yang alami menggunakan hitTest. hitTest menggunakan Ray untuk menentukan konten mana yang bersimpangan dan untuk membuat Anchor dari lokasi tersebut. Pertimbangkan untuk melakukan hitTest dari InputEvent.

Masalah Umum

  • Mungkin ada penundaan antara memanggil unpersist dan UUID-nya dihapus dari hasil yang ditampilkan oleh getPersistedAnchorUuids.

  • create tidak akan memvalidasi bahwa sistem memiliki resource yang cukup untuk menampilkan anchor baru. Membuat terlalu banyak anchor dapat menyebabkan error.

  • Mempertahankan Anchor yang sebelumnya dipertahankan dan tidak dipertahankan saat ini tidak didukung.

  • Penggunaan di emulator didukung, tetapi perilakunya mungkin tidak stabil seperti saat berjalan di perangkat yang sebenarnya. Secara khusus, panggilan ke create mungkin gagal dengan error kode native dan segera menghentikan aktivitas.

  • Dalam situasi tertentu, RuntimeException mungkin salah ditampilkan saat memanggil persist dengan pesan “Anchor was not persisted”. Dalam situasi tersebut, fungsi akan tetap berhasil dan anchor akan dipertahankan. Sebaiknya gabungkan panggilan ke persist dengan blok try sebagai solusinya.