Mengontrol proses pelacakan Mega
Artikel ini menjelaskan cara mengontrol berbagai fungsi dan parameter dalam proses pelacakan Mega untuk memenuhi kebutuhan berbagai skenario aplikasi.
Sebelum memulai
Menyesuaikan level dukungan perangkat
Properti MegaTrackerFrameFilter.MegaTrackerFrameFilter.MinInputFrameLevel digunakan untuk menetapkan level perangkat minimum yang didukung oleh Mega.
![]()
Mega dapat berjalan di hampir semua jenis sumber data frame, tetapi sumber data frame yang berbeda memiliki dampak berbeda pada efek pelacakan.
Secara default, Mega akan memilih sumber data frame dengan level tertinggi yang didukung perangkat untuk pelacakan. Session yang mendukung Mega dengan konfigurasi default telah dikonfigurasi untuk mendukung sumber data frame 6DoF dan 5DoF.
Untuk mendukung sumber data frame pada level tertentu saat Mega berjalan, diperlukan dua kondisi:
- Sumber data frame yang diperlukan ada dalam grup sumber data frame opsional session.
- MegaTrackerFrameFilter.MinInputFrameLevel lebih besar atau sama dengan level CameraTransformType dari sumber data frame yang diperlukan.
Misalnya, untuk mendukung pelacakan 3DoF dalam session default, diperlukan:
- Menambahkan ThreeDofCameraDeviceFrameSource ke grup sumber data frame session.
- Mengubah MegaTrackerFrameFilter.MinInputFrameLevel menjadi ThreeDof.
Contoh lain, untuk menghapus dukungan pelacakan 5DoF dalam session default, diperlukan:
- Menghapus InertialCameraDeviceFrameSource dari grup sumber data frame session.
- Mengubah MegaTrackerFrameFilter.MinInputFrameLevel menjadi SixDof (bahkan jika tidak diubah, karena tidak ada sumber data frame 5DoF, 5DoF tidak akan digunakan).
Jika tidak ada sumber data frame yang memenuhi syarat, perakitan session akan gagal.
Manajemen target pelacakan
Saat menggunakan Mega, perlu ditentukan target yang digunakan oleh MegaTrackerFrameFilter, yaitu block.
Kontrol sumber block
Dalam kebanyakan kasus, disarankan untuk mempertahankan konfigurasi default, yaitu mengimpor block menggunakan Mega Studio di editor.
Pilih objek Mega Tracker di bawah session, opsi Block Root Source harus tetap External (default).
![]()
Pada saat yang sama, perlu ditentukan Block Root sebagai objek MegaBlocks dalam adegan.
![]()
Mengubah opsi Block Root Source dapat menentukan cara sumber block lain, seperti saat mengimpor data ema, biasanya memilih opsi Internal atau Mixed.
Dalam skrip, Anda dapat mengubah BlockHolder.BlockRootSource untuk mencapai efek yang sama.
Kontrol pelacakan multi-target
Dalam sebagian besar skenario penggunaan Mega, tidak perlu menggunakan multi-target. Sebelum menguasai cara menghindari pengaruh timbal balik beberapa block, disarankan untuk hanya menempatkan satu block dalam satu perpustakaan pelokalan.
Kiat
Secara prinsip, Mega akan menghitung posisi perangkat di semua block, bukan memilih block yang dilihat perangkat dari perpustakaan pelokalan. Penggunaan yang tidak dipertimbangkan dengan matang dapat menyebabkan penurunan kinerja karena kebingungan data, dll.
Pilih objek Mega Tracker di bawah session, ubah opsi Multi Block untuk mengaktifkan atau menonaktifkan fungsi pelacakan multi-block.
![]()
Dalam skrip, Anda dapat mengubah BlockHolder.MultiBlock untuk mencapai efek yang sama.
Peringatan
Secara umum, hanya satu block yang dapat ada secara bersamaan dalam satu perpustakaan pelokalan.
Mengubah konfigurasi multi-target akan memengaruhi efek pelacakan, dan umumnya tidak disarankan untuk diubah. Harap gunakan di bawah bimbingan dukungan teknis EasyAR.
Jika konfigurasi ini diubah selama eksekusi aplikasi, pastikan untuk menyebutkan hal ini saat melaporkan masalah ke EasyAR.
Memahami status sistem saat ini
Dalam konfigurasi session default, pesan UI akan ditampilkan di layar, yang berisi informasi tentang status pelacakan Mega.
Saat pelokalan berhasil, Mega Block akan berisi teks status Found serta nama dan ID block yang sedang dilacak:
![]()
Saat pelokalan gagal, Mega Block akan berisi teks status NotFound:
![]()
Kiat
NotFound adalah status normal, dan sering muncul selama keseluruhan proses kerja Mega. Saat status ini muncul, pelacakan masih berlanjut. Biasanya dalam pengembangan aplikasi tidak diperlukan penanganan khusus untuk status NotFound.
Menggunakan peristiwa MegaTrackerFrameFilter.LocalizationRespond dapat memperoleh status pelokalan saat ini, sehingga memahami apakah sistem saat ini telah menemukan target pelacakan.
Kode berikut menunjukkan cara menggunakan peristiwa ini, serta metode penanganan status tidak biasa yang umumnya perlu diperhatikan oleh aplikasi:
private void Awake()
{
megaTracker.LocalizationRespond += HandleLocalizationStatusChange;
}
private void HandleLocalizationStatusChange(MegaLocalizationResponse response)
{
var status = response.Status;
wakingUpCount = status == MegaTrackerLocalizationStatus.WakingUp ? wakingUpCount + 1 : 0;
if (wakingUpCount >= 5)
{
// Layanan sedang bangun, perlu membuat pengguna akhir menunggu
}
if (status == MegaTrackerLocalizationStatus.QpsLimitExceeded)
{
// Batas QPS terlampaui, secara acak pengguna akhir akan gagal dilokalisasi (penurunan kualitas pelacakan secara keseluruhan)
// Saat ini umumnya perlu membayar untuk meningkatkan batas atas QPS guna memastikan kualitas pelacakan di bawah volume pengguna saat ini
}
if (status == MegaTrackerLocalizationStatus.ApiTokenExpired)
{
// Token kedaluwarsa, ini hanya akan muncul saat menggunakan antarmuka Token untuk mengakses layanan
// Mendekati masalah ini memerlukan aplikasi untuk meminta Token dari backend-nya sendiri, dan memanggil MegaTrackerFrameFilter.UpdateToken untuk memperbarui
}
}
Jika aplikasi sering mengalami status MegaTrackerLocalizationStatus.RequestTimeout, biasanya menunjukkan bahwa kondisi jaringan perangkat yang terhubung ke layanan buruk. Disarankan untuk mengoptimalkan lingkungan jaringan untuk meningkatkan kualitas pelacakan. Dalam skenario di mana kondisi jaringan tidak dapat diperbaiki, dapat dipertimbangkan untuk menambah waktu tunggu permintaan.
Catatan
Tidak dapat memperoleh pose yang dikembalikan oleh pelokalan melalui peristiwa ini.
Faktanya, pose yang dikembalikan oleh pelokalan tidak diperlukan dalam pengembangan aplikasi. EasyAR akan menghitung pose yang lebih akurat melalui algoritma lokal setelah pelokalan dikembalikan dan mengembalikannya untuk digunakan oleh pengembang, dan pose ini telah tercermin dalam transform block. Dapat merujuk ke mendapatkan hasil operasi session.
Jeda dan lanjutkan
Fungsi pelacakan dan pelokalan Mega dapat dijeda dan dilanjutkan secara terpisah.
Jeda pelacakan
Setel MegaTrackerFrameFilter.enabled ke false untuk menjeda pelacakan.
Secara default, setelah pelacakan dijeda, semua konten di bawah node block akan disembunyikan.
Jeda pelokalan
Setel MegaTrackerFrameFilter.EnableLocalization ke false untuk menjeda pelokalan.
Peringatan
Menjeda pelokalan akan memengaruhi efek pelacakan, dan umumnya tidak disarankan untuk diubah. Harap gunakan di bawah bimbingan dukungan teknis EasyAR.
Jika pelokalan dijeda selama eksekusi aplikasi, pastikan untuk menyebutkan hal ini saat melaporkan masalah ke EasyAR.
Kontrol layanan dan permintaan
Perilaku permintaan layanan dapat dikontrol dengan mengubah parameter komponen MegaTrackerFrameFilter.
Interval permintaan dan waktu tunggu
Pilih objek Mega Tracker di bawah session, ubah opsi di bawah Request Time Parameters untuk menyesuaikan interval permintaan layanan dan waktu tunggu.
![]()
Dalam skrip, Anda dapat mengubah MegaTrackerFrameFilter.RequestTimeParameters untuk mencapai efek yang sama.
Peringatan
Mengubah interval permintaan akan memengaruhi efek pelacakan, dan umumnya tidak disarankan untuk diubah. Harap gunakan di bawah bimbingan dukungan teknis EasyAR.
Jika interval permintaan diubah selama eksekusi aplikasi, pastikan untuk menyebutkan hal ini saat melaporkan masalah ke EasyAR.
Beralih perpustakaan pelokalan
Gunakan MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) untuk beralih perpustakaan pelokalan saat runtime. Saat menggunakan antarmuka ini, gambar kamera dan session tidak akan terputus.
Topik terkait
- Praktik terbaik AR Session untuk Mega memperkenalkan cara membuat dan mengonfigurasi AR Session yang cocok untuk Mega
- Menambahkan target pelacakan Mega memperkenalkan cara menambahkan block target Mega dan cara memuat model block di editor Unity untuk membantu pengembangan
- Menambahkan sekelompok sumber data frame memperkenalkan cara mengubah grup sumber data frame session
- Mendapatkan hasil operasi session memperkenalkan cara mendapatkan hasil pelacakan komponen session
- Pesan UI memperkenalkan cara menggunakan pesan UI untuk menampilkan status session