Table of Contents

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:

  1. Tutup Unity yang sedang digunakan.
  2. Hapus direktori kompilasi platform yang dihasilkan saat aplikasi dibundel oleh Unity.
  3. Buka kembali proyek Unity, dan hapus EasyAR Sense Unity Plugin versi lama dari proyek.
  4. 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:

  1. 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.
  2. 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

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:

  1. Hapus grup node yang sebelumnya dihasilkan oleh Mega Studio di dalam scene, termasuk objek MegaBlocks dan 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.
  2. 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.
  3. Jika ada node penandaan di scene asli, Anda perlu membuat node objek 3D serupa untuk menggantikan node penandaan.
  4. Jika ada logika pembuatan block di skrip di proyek asli, Anda perlu menggantikannya dengan metode yang ada di Tambahkan target pelacakan Mega.
  5. Hapus skrip yang tidak berfungsi pada sub-node Mega Tracker (MegaTrackerFrameFilter) dari AR 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:

Topik terkait