Mengontrol proses pelacakan Mega Go
Artikel ini menjelaskan cara mengontrol fungsi dan parameter dalam proses pelacakan Mega Go untuk memenuhi kebutuhan berbagai skenario aplikasi.
Sebelum memulai
- Periksa Apakah fungsi lokasi saya sudah bisa digunakan? untuk memastikan peta yang benar telah diunduh.
Alur kerja tracker
Alur kerja tracker adalah sebagai berikut:
flowchart LR
subgraph startup_graph[Startup]
direction TB
sstart((Startup session))
create[Pembuatan native]
load(Muat target)
verify[Verifikasi trial]
init_g[[Inisialisasi]]
end
subgraph init_graph[Inisialisasi]
direction TB
init_{Inisialisasi 6DoF berhasil<br>atau non-6DoF}
init[[Proses inisialisasi tracking lokal]]
detecting[[Deteksi]]
tracking_g[[Tracking]]
end
subgraph tracking_graph[Tracking]
direction TB
tracking[[Tracking berkelanjutan]]
end
subgraph stopping_graph[Berhenti]
direction TB
unload(Unload target)
dispose[Penghancuran native]
sstop([Session berhenti])
end
sstart --> create --> load --> verify --> init_g
init --> init_ --> |Yes| detecting --> tracking_g
unload --> dispose --> sstop
init_ --> |No| init
startup_graph --> init_graph
init_graph --> tracking_graph
tracking_graph --> stopping_graph
Proses ini secara garis besar dibagi menjadi beberapa tahap:
- Memulai:
- Setelah session dimulai, tracker pada lapisan native akan dibuat.
- Setelah Start() pada target, target akan dimuat ke tracker yang sesuai.
- Untuk data percobaan, perlu memvalidasi kelayakan percobaan secara online; hanya setelah validasi berhasil akan masuk ke tahap berikutnya.
- Inisialisasi:
- Saat menggunakan frame source 6DoF, proses inisialisasi pelacakan lokal akan dimulai.
- Inisialisasi pelacakan lokal dapat memerlukan waktu; bergantung pada kompleksitas scene dan kemampuan perangkat, dan biasanya juga terkait dengan algoritma yang digunakan lapisan bawah frame source.
- Saat menggunakan frame source non-6DoF, tahap inisialisasi pelacakan lokal dilewati dan langsung mulai mendeteksi.
- Proses deteksi juga dapat memerlukan waktu, tergantung pada seberapa mudah scene dilokalisasi dan kualitas pengambilan serta pemetaan data.
- Dengan konfigurasi default, konten pada tahap ini tidak akan ditampilkan; perilaku ini dapat dikendalikan melalui opsi komponen ActiveController.
- Saat menggunakan frame source 6DoF, proses inisialisasi pelacakan lokal akan dimulai.
- Pelacakan:
- Tracker akan terus melacak block saat ini.
- Dengan konfigurasi default, hanya konten di bawah node target yang sedang dalam status pelacakan (TargetController.IsTracked ==
true) yang akan ditampilkan; perilaku ini dapat dikendalikan melalui opsi komponen ActiveController.
- Berhenti:
- Setelah session berhenti, target akan dilepas dan tracker pada lapisan native akan dihancurkan.
Menyesuaikan tingkat dukungan perangkat
Properti MegaGoTrackerFrameFilter.MinInputFrameLevel dari MegaGoTrackerFrameFilter digunakan untuk menentukan tingkat perangkat minimum yang didukung Mega.
![]()
Mega Go dapat berjalan pada hampir semua jenis frame source, tetapi setiap frame source memberikan pengaruh berbeda pada hasil pelacakan.
Secara default, Mega memilih frame source dengan tingkat tertinggi yang didukung perangkat untuk pelacakan. Session yang kompatibel dengan Mega Go dalam konfigurasi default sudah dikonfigurasi dengan frame source yang mendukung 6DoF dan 5DoF.
Agar Mega mendukung frame source pada tingkat tertentu saat runtime, dua syarat harus dipenuhi:
- Frame source yang diperlukan berada di grup frame source opsional dalam session.
- MegaGoTrackerFrameFilter.MinInputFrameLevel lebih besar atau sama dengan tingkat CameraTransformType dari frame source yang diperlukan.
Sebagai contoh, untuk mendukung pelacakan 3DoF pada session default, perlu:
- Menambahkan ThreeDofCameraDeviceFrameSource ke grup frame source session.
- Mengubah MegaGoTrackerFrameFilter.MinInputFrameLevel menjadi ThreeDof.
Sebagai contoh lain, untuk menghapus dukungan pelacakan 5DoF dari session default, perlu:
- Menghapus InertialCameraDeviceFrameSource dari grup frame source session.
- Mengubah MegaGoTrackerFrameFilter.MinInputFrameLevel menjadi SixDof (meskipun tidak diubah, karena tidak ada frame source 5DoF, maka 5DoF juga tidak akan digunakan).
Jika tidak ada frame source yang memenuhi syarat tersedia, assembly session akan gagal.
Memahami status sistem saat ini
Dengan konfigurasi session default, pesan UI akan ditampilkan di layar dan berisi informasi status Mega Go.
Status tracker akan ditampilkan di samping Mega Go: , misalnya Tracking atau VerifyingTrial. Selama proses deteksi dan pelacakan, pembaruan lokalisasi juga akan ditampilkan di bawahnya.
![]()
Status pelacakan block yang sedang dimuat akan ditampilkan di bawah Mega Go: , dalam format Block (<trackingStatus>): <name> (<id>). <name> adalah nama block dan <id> adalah ID block. trackingStatus bisa berupa Tracking atau NotTracking, yang masing-masing menunjukkan apakah block saat ini sedang dilacak.

Properti MegaGoTrackerFrameFilter.Status dapat digunakan untuk memperoleh status saat ini guna memahami cara kerja tracker. Saat muncul status error, status error dapat diperoleh melalui MegaGoTrackerFrameFilter.Error dan ditangani sesuai kebutuhan.
Kode berikut menunjukkan cara menggunakan properti tersebut serta cara menangani status abnormal umum yang perlu diperhatikan aplikasi:
void HandleTrackerStatus()
{
if (tracker.Status == MegaGoTrackerStatus.Error)
{
if (tracker.Error == MegaGoTrackerError.ServiceVerificationFailed)
{
// validasi lokal gagal; sebaiknya periksa apakah data sudah kedaluwarsa atau tidak valid (data uji menjadi tidak valid setelah versi uji diubah menjadi versi resmi).
}
else if (tracker.Error == MegaGoTrackerError.LocalVerificationFailed)
{
// validasi lokal gagal; sebaiknya periksa apakah file target lengkap.
}
else
{
// error lainnya.
}
}
else if (tracker.Status == MegaGoTrackerStatus.VerifyingTrial)
{
// target uji sedang divalidasi. Jika validasi tidak selesai dalam waktu lama, sebaiknya periksa koneksi jaringan.
}
else if (tracker.Status == MegaGoTrackerStatus.VIOInitializing)
{
// input VIO sedang diinisialisasi. Jika inisialisasi tidak selesai dalam waktu lama, sebaiknya minta pengguna mengoptimalkan cara penggunaan.
// misalnya: "coba arahkan kamera serong ke depan, lalu gerakkan perangkat lebar ke kiri dan kanan sebanyak 5 kali."
}
}
Gunakan event MegaGoTrackerFrameFilter.LocalizationRespond untuk mendapatkan pembaruan lokalisasi.
Menjeda dan melanjutkan
Atur MegaGoTrackerFrameFilter.enabled ke false untuk menjeda pelacakan.
Secara default, setelah pelacakan dijeda, semua konten di bawah node block akan disembunyikan.
Topik terkait
- Praktik terbaik AR Session untuk Mega Go menjelaskan cara membuat dan mengonfigurasi AR Session yang sesuai untuk Mega Go
- Menambahkan target pelacakan Mega Go menjelaskan cara menambahkan block target pelacakan Mega Go dan cara memuat model block di Unity Editor untuk membantu pengembangan
- Menambahkan grup frame source menjelaskan cara mengubah grup frame source session
- Mendapatkan hasil runtime session menjelaskan cara memperoleh hasil pelacakan komponen session
- Pesan UI menjelaskan cara menggunakan pesan UI untuk menampilkan status session