Panduan Migrasi EasyAR Sense Unity Plugin
Artikel ini menjelaskan cara melakukan migrasi dari versi lama EasyAR Sense Unity Plugin ke versi baru.
Keterangan Kompatibilitas
Mulai dari versi 4000, EasyAR Sense Unity Plugin mengikuti Kontrol Versi Paket (menggunakan Semantic Versioning) yang diminta oleh Unity, kompatibilitas dapat ditentukan berdasarkan nomor versi.
4.7 adalah versi pembaruan bertahap, dua versi 4.7 mana pun tidak kompatibel.
Untuk versi sebelum 4.7, hanya nomor versi ketiga yang menunjukkan kompatibilitas ke belakang, perubahan nomor versi dua yang pertama menunjukkan ketidakkompatibelan. Misalnya, 4.6.2 kompatibel dengan 4.6.1, tetapi 4.6.0 tidak kompatibel dengan 4.5.0.
Peringatan
Memodifikasi file tgz atau tidak memperbarui seluruh plugin secara lengkap setelah diekstrak akan menyebabkan ketidakkompatibelan.
Panduan Migrasi Umum
Untuk melakukan migrasi ke versi baru, Anda perlu terlebih dahulu menghapus paket plugin versi lama menggunakan Package Manager window dan menambahkan paket baru.
Disarankan untuk melakukan langkah-langkah berikut:
- Tutup Unity yang sedang digunakan.
- Hapus direktori kompilasi platform yang dihasilkan saat aplikasi dibundel oleh Unity.
- Buka kembali proyek Unity, dan hapus EasyAR Sense Unity Plugin versi lama dari proyek.
- Impor versi EasyAR Sense Unity Plugin yang baru.

Catatan
File contoh yang diberikan oleh plugin tidak menjamin kompatibilitas antar versi. Setelah mengupgrade plugin, contoh yang diimpor ke proyek mungkin tidak dapat berfungsi dengan baik. Disarankan untuk menghapus contoh versi lama sebelum melakukan operasi.
EasyAR mencakup file library asli. Jika fungsi library telah dieksekusi sebelum penghapusan atau penggantian (juga akan dipanggil saat pembundelan), file library ini akan terkunci oleh sistem dan tidak dapat dihapus atau diganti.
Penting
Sebelum menghapus versi lama, pastikan tidak ada skenario yang sedang berjalan di editor atau aplikasi untuk platform mana pun sedang dibundel. Biasanya disarankan untuk menutup Unity sebelum menghapus atau mengganti paket, dan langsung menggantinya setelah membukanya kembali.
Sebelum membundel ulang menggunakan plugin versi baru, Anda perlu menghapus direktori kompilasi platform yang dihasilkan oleh Unity, termasuk direktori proyek Gradle yang dihasilkan saat membundel Android, dan direktori Xcode yang dihasilkan saat membundel iOS.
Kiat
Biasanya direktori ini mungkin ada di dalam folder Library proyek Unity (seperti Library/Bee/Android/Prj/IL2CPP/Gradle), tetapi posisinya mungkin berbeda untuk setiap versi Unity.
Jika Anda telah melakukan pembundelan tetapi tidak dapat menemukan direktori untuk platform yang sesuai, disarankan untuk menghapus seluruh folder Library.
Jika terjadi pengecualian SchemaHashNotMatched setelah migrasi, biasanya ada dua kemungkinan:
- Operasi yang disebutkan di atas tidak dilakukan dengan benar, sehingga upgrade gagal atau tidak lengkap, atau direktori kompilasi yang dihasilkan oleh Unity tidak diperbarui dengan benar (perhatikan: jika tidak dihapus secara manual, kemungkinan besar akan terjadi kesalahan). Disarankan untuk melakukan operasi sesuai langkah yang disarankan atau mengkompilasi ulang proyek yang tidak memiliki cache
Library. - File tgz EasyAR telah dimodifikasi secara manual atau plugin tidak diperbarui secara lengkap setelah diekstrak. Dalam situasi ini, EasyAR tidak dapat menjamin ketersediaannya, sehingga Anda perlu mengunduh paket yang benar kembali dan mengimpornya.
Penting
Karena file library EasyAR Sense dan lokasi setelah dibundel mungkin berubah, jika Anda mempertahankan proyek Gradle atau Xcode yang dihasilkan oleh Unity, Anda harus menghapus semua file yang terkait dengan EasyAR terlebih dahulu, seperti EasyAR.aar, libEasyAR.so, easyar.framework, dll.
Pindah ke Versi 4003
Kiat
Hanya ada perubahan yang tidak kompatibel saat menggunakan Mega, penggunaan fitur lainnya tidak terpengaruh.
Saat berpindah dari versi 4002 ke 4003, selain panduan migrasi umum di atas, perlu diperhatikan hal-hal berikut.
Perubahan alur pengembangan Mega
Pada versi 4003, alur pengembangan Mega mengalami perubahan yang cukup besar. Jika sebelumnya Anda telah menggunakan fitur lain dari EasyAR Sense Unity Plugin, Anda akan lebih akrab dengan alur ini.
Perubahan utama meliputi hal-hal berikut:
- Perubahan fitur paket
com.easyar.mega- Anda tidak perlu lagi mengimpor paket ini untuk menggunakan Mega; namun, jika Anda ingin memuat model block di editor untuk membantu penempatan konten, Anda masih perlu mengimpornya.
- Ditambahkan opsi konfigurasi Mega Block/Landmark support: Harus diaktifkan sebelum pengemasan.
- Perubahan fitur editor
- Pemuatan block mesh dan data lainnya tidak lagi memerlukan alat Mega Studio. Bahkan jika Anda menambahkan alat penandaan di dalam scene, alat tersebut tidak dapat digunakan untuk pengembangan di Unity.
- Panel komponen MegaBlockController langsung menyediakan fitur editor block, sehingga pengelolaannya lebih langsung.
- Alat validasi session menyediakan lebih banyak opsi kontrol Mega yang berguna, menggantikan fungsi yang sebelumnya ada di Mega Studio dan fungsi area uji editor MegaTrackerFrameFilter.
- Perubahan perilaku target
- EasyAR.Mega.Scene.BlockController telah digantikan oleh MegaBlockController. MegaBlockController adalah subclass dari TargetController, mengikuti pola perilaku target standar target behavior pattern dan strategi kontrol aktif active control strategy yang berlaku untuk target.
- EasyAR.Mega.Scene.BlockRootController telah dihapus. Block tidak lagi memiliki node root, setiap block bersifat independen.
- MegaBlockController dapat dibuat oleh ARSessionFactory.CreateController.
Saat migrasi dari 4002 ke 4003, yang perlu Anda perhatikan adalah perlu mengatur ulang objek block di dalam scene, menggantikan grup node yang sebelumnya dihasilkan oleh Mega Studio dengan komponen MegaBlockController:
- Hapus grup node yang sebelumnya dihasilkan oleh Mega Studio di dalam scene, termasuk objek
MegaBlocksdan semua objek block di bawahnya.- Jika ada node penandaan, juga perlu dihapus.
- Jika ada objek konten di bawah objek block, disarankan untuk memindahkan objek konten ke node lain terlebih dahulu, perhatikan untuk menjaga transform lokal tetap sama.
- Tambahkan target pelacakan Mega di dalam scene.
- Jika ada beberapa objek block di scene asli, Anda perlu membuat beberapa target pelacakan Mega di scene.
- Pindahkan objek konten di bawah objek block sebelumnya ke target pelacakan Mega yang baru dibuat, perhatikan untuk menjaga transform lokal tetap sama.
- Perhatikan pengaturan id MegaBlockController.Source, id ini harus sama dengan id objek block asli untuk memastikan pemuatan yang benar saat runtime.
- Perhatikan pengaturan MegaBlockController.Tracker untuk menggunakan MegaTrackerFrameFilter yang benar.
- Jika ada node penandaan di scene asli, Anda perlu membuat node objek 3D serupa untuk menggantikan node penandaan.
- Jika ada logika pembuatan block di skrip di proyek asli, Anda perlu menggantikannya dengan metode yang ada di Tambahkan target pelacakan Mega.
- Hapus skrip yang tidak berfungsi pada sub-node
Mega Tracker(MegaTrackerFrameFilter) dariAR Session (EasyAR).
Untuk sebagian besar kasus penggunaan, setelah selesai mengganti node block, konten lain di dalam scene dapat berjalan normal tanpa perlu diubah.
Perubahan antarmuka
| Modul fitur | v4002 API | v4003 API | Keterangan penggunaan |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.BlockHolder | MegaBlockController.Tracker | Tambahkan target pelacakan Mega Konfigurasikan pemuat pada node block sebagai pengganti node akar block yang dimuat melalui konfigurasi pada node tracker. |
| Mega | MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | MegaTrackerFrameFilter.SwitchEndPoint | Kontrol proses pelacakan Mega |
| Mega | MegaTrackerFrameFilter.SimulatorLocation | MegaTrackerFrameFilter.SimulatorLocation | |
| Mega | CloudLocalizerFrameFilter.BlockHolder | MegaBlockController.Tracker | Tambahkan target pelacakan Mega Konfigurasikan pemuat pada node block sebagai pengganti node akar block yang dimuat melalui konfigurasi pada node tracker. |
| Mega | CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) | CloudLocalizerFrameFilter.SwitchEndPoint | Kontrol proses pelacakan Mega |
| Mega | CloudLocalizerFrameFilter.SimulatorLocation | CloudLocalizerFrameFilter.SimulatorLocation | |
| Mega | MegaLocalizationResponse.Blocks | MegaLocalizationResponse.Blocks | Kontrol proses pelacakan Mega |
| Mega Support | EasyAR.Mega.Scene.BlockHolder | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlock | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRoot | MegaBlockController.Tracker | Tambahkan target pelacakan Mega Konfigurasikan pemuat pada node block sebagai pengganti node akar block yang dimuat melalui konfigurasi pada node tracker. |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.BlockActiveController | ActiveController | Strategi kontrol aktif yang berlaku untuk target |
| Mega Support | EasyAR.Mega.Scene.BlockController | MegaBlockController | Tambahkan target pelacakan Mega |
| Mega Support | EasyAR.Mega.Scene.BlockRootController | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.LocalTransform | LocalTransform | |
| Mega Support | EasyAR.Mega.Scene.Location | Location | |
| Mega Support | EasyAR.Mega.Scene.LocationConverter | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.AnnotationNode | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.AnnotationGroup | - | Fitur telah dihapus |
| Mega Support | EasyAR.Mega.Scene.NavPointGraph | - | Fitur telah dihapus |
Pindah ke Versi 4002
Saat berpindah dari versi 4001 ke 4002, selain panduan migrasi umum di atas, perlu diperhatikan hal-hal berikut.
Perubahan antarmuka
| Modul fungsi | v4001 API | v4002 API | Keterangan penggunaan |
|---|---|---|---|
| Fungsi tambahan | Image.Image(Buffer, PixelFormat, int, int) | Image.create |
Pindah ke Versi 4001
Kiat
Hanya ada perubahan yang tidak kompatibel saat menggunakan Mega, penggunaan fitur lainnya tidak terpengaruh.
Saat berpindah dari versi 4000 ke 4001, selain panduan migrasi umum di atas, Anda juga perlu memperhatikan hal-hal berikut.
Perubahan antarmuka
| Modul fungsi | v4000 API | v4001 API | Keterangan penggunaan |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | Kontrol proses pelacakan Mega |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | Fitur telah dihapus |
迁移 Versi Lama
Saat melakukan migrasi dari versi sebelum 4000, Anda perlu merujuk pada hal-hal berikut: