Membuat headset mendukung EasyAR
Artikel ini menjelaskan cara menggunakan templat paket ekstensi headset dari EasyAR Sense Unity Plugin untuk mengembangkan paket ekstensi EasyAR yang mendukung perangkat headset.
Sebelum memulai
Sebelum masuk ke pengembangan, perlu terlebih dahulu memahami cara menggunakan EasyAR Sense Unity Plugin.
- Mulai cepat
- Jalankan contoh AR Session, contoh pelacakan gambar ImageTracking_Targets, dan contoh peta ruang padat SpatialMap_Dense_BallGame; hasilnya di ponsel dan headset serupa.
Pengembangan plugin headset akan melibatkan fungsi dasar, jadi perlu memahami hal-hal berikut terlebih dahulu:
- Pahami AR Session
- Pahami sumber frame dan sumber frame eksternal
Selain itu, Anda juga perlu familiar dengan cara mengembangkan package Unity.
Mempersiapkan perangkat untuk AR/MR
Mempersiapkan sistem pelacakan gerak/VIO
Pastikan error pelacakan perangkat terkendali. Beberapa fitur EasyAR seperti Mega dapat sampai batas tertentu mengurangi error akumulasi perangkat, tetapi error lokal yang besar juga akan membuat algoritma EasyAR menjadi tidak stabil. Secara umum, kami berharap drift VIO berada dalam 1‰.
Mempersiapkan sistem tampilan
Pastikan saat sebuah objek virtual dengan ukuran dan kontur yang sama seperti objek nyata ditempatkan di dunia virtual, dan hubungan transformasi relatifnya dengan kamera virtual sama dengan hubungan transformasi antara objek nyata dan perangkat di dunia nyata, objek virtual dapat tampil menempel pada objek nyata dan perpindahan perangkat atau putaran kepala tidak merusak efek tampilan. Anda dapat merujuk pada efek Vision Pro.
Mempersiapkan SDK perangkat
Pastikan sudah ada API yang dapat menyediakan data frame input eksternal. Data ini harus dihasilkan oleh dua dan hanya dua titik waktu di dalam sistem, dan perlu memastikan tidak ada situasi data tidak dapat disejajarkan.
Menggunakan templat paket ekstensi headset
Impor EasyAR Sense Unity Plugin (package com.easyar.sense) melalui jendela Package Manager di Unity dengan instalasi dari file tarball lokal. Ekstrak templat ekstensi headset (package com.easyar.sense.ext.hmdtemplate) ke direktori Packages pada proyek Unity, lalu ubah nama folder Samples~ menjadi Samples.
Saat itu Anda akan melihat struktur direktori seperti ini:
.
├── Assets
└── Packages
└── com.easyar.sense.ext.hmdtemplate
├── CHANGELOG.md
├── Documentation~
├── Editor
├── LICENSE.md
├── package.json
├── Runtime
└── Samples
└── Combination_BasedOn_HMD
Kiat
Jika perlu, Anda dapat menggunakan cara apa pun yang diizinkan Unity untuk mengimpor EasyAR Sense Unity Plugin dan menyimpan templat ekstensi headset.
Jika tidak menggunakan templat, Anda juga dapat merujuk ke panduan Unity untuk membuat package kustom untuk membuat package baru.
Jika SDK perangkat tidak diorganisasi sebagai package Unity, Anda harus mengekstrak templat ekstensi headset ke folder Assets proyek Unity, lalu menghapus file package.json serta file apa pun dengan akhiran .asmdef dari hasil ekstraksi. Harap diperhatikan bahwa dalam cara penggunaan ini, pengguna yang memakai SDK perangkat bersama EasyAR tidak akan memperoleh dependensi versi yang memadai.
Menyelesaikan ekstensi input runtime
Ikuti metode membuat ekstensi input untuk data gerak perangkat dan gambar, ubah Runtime/HMDTemplateFrameSource.cs, dan selesaikan ekstensi input yang cocok untuk headset. Inilah pekerjaan pengembangan utama paket ekstensi.
Menyelesaikan menu editor
Ubah string "HMD Template" di kelas MenuItems menjadi nama perangkat. Jika Anda memerlukan fungsi editor kustom lainnya, Anda juga dapat menambahkan skrip lain.
Saat pengembang memilih AR Session (EasyAR) di tampilan Hierarchy dan mengeklik kanan, menu berikut akan muncul:
EasyAR Sense>Extensions>Frame Source : [Device Name]: menambahkan sumber frame perangkat tersebut ke session saat ini.EasyAR Sense>Extensions>Frame Source : [Device Name (keep it only)]: menambahkan sumber frame perangkat tersebut ke session saat ini dan hanya mempertahankan satu.

Menyelesaikan contoh aplikasi
Contoh berada di Samples/Combination_BasedOn_HMD. Demi kesederhanaan, templat contoh tidak memiliki kode; semua fungsi AR dapat diselesaikan hanya melalui konten scene dan konfigurasi.
Tambahkan konten yang mendukung berjalan di perangkat ke dalam scene.
Kiat
Jika perlu, Anda juga dapat melakukannya sebaliknya: gunakan scene yang bisa berjalan di perangkat, lalu tambahkan komponen EasyAR dan objek lain dari scene contoh ke scene tersebut.
Ubah objek yang dirancang untuk diletakkan di bawah origin session.
Jika scene mendefinisikan origin session, pindahkan
EasyARPandadanUIke bawah node origin.
EasyARPandaakan memberikan referensi perilaku pelacakan gerak perangkat, yang membantu menentukan penyebab saat pelacakan tidak stabil.Teks di dalam tanda kurung pada nama objek ini ditujukan sebagai petunjuk bagi pengembang ekstensi dan dapat dihapus:
(Move into Origin if there is any)(Move into Origin if there is any, set constraint source to your rendering camera)
Konfigurasikan perilaku tombol
HUD.Atur constraint source
UIke kamera virtual untuk memastikan tombolHUDbekerja seperti yang diharapkan.
Konfigurasikan fungsi raycast
Canvas.Ubah
Canvasdi bawah nodeUIuntuk memastikan raycast berfungsi dan semua tombol serta sakelar UI berjalan seperti yang diharapkan.Templat sudah menambahkan Tracked Device Graphic Raycaster dari XR Interaction Toolkit pada node
Canvas; setelah paket terkait diimpor, Anda akan dapat melihatnya.
Jika saat berjalan di perangkat Anda tidak menggunakan XR Interaction Toolkit, Anda akan melihat petunjuk skrip hilang seperti di bawah ini; Anda dapat menghapusnya dan menambahkan komponen raycaster yang dibutuhkan perangkat.

Langkah berikutnya
- Sebelum menyelesaikan paket ekstensi, terlebih dahulu jalankan verifikasi bring-up pada ekstensi input
- Setelah semuanya selesai, Anda dapat menyiapkan rilis paket ekstensi