Mulai cepat: Penjelasan MRTK secara mendalam
Panduan ini memberikan liputan mendalam mengenai Aplikasi sampel Azure Object Anchors MRTK Unity. Ini dimaksudkan untuk memberikan wawasan tentang desain sampel. Dengan membaca panduan ini, pengembang dapat mempercepat pemahaman mereka tentang konsep Azure Object Anchors utama dalam sampel.
Tata letak proyek
Aset yang dibuat untuk sampel Azure Object Anchors MRTK Unity disimpan di Assets\MixedReality.AzureObjectAnchors
. Subfoldernya adalah sebagai berikut:
- Ikon
- Berisi beberapa ikon kustom yang digunakan di menu yang menghadap pengguna.
- Materi
- Berisi shader dan bahan untuk visualisasi rekonstruksi permukaan dan shader kedalaman saja , yang menulis ke penyangga kedalaman untuk membantu stabilisasi hologram di sekitar teks.
- Prefabs
- Berisi Unity yang dapat digunakan kembali
GameObjects
. Secara khusus,TrackableObjectPrefab
mewakili objek yang dibuat saat Azure Object Anchors mendeteksi suatu objek.
- Berisi Unity yang dapat digunakan kembali
- Profil
- Berisi profil MRTK khusus yang menggambarkan fungsionalitas minimal yang diperlukan dari MRTK untuk mengaktifkan aplikasi.
- Adegan
- Berisi
AOASampleTestScene
, yang merupakan adegan utama dalam sampel.
- Berisi
- Skrip
- Berisi skrip yang ditulis untuk sampel.
Adegan Unity
Mixed Reality Play Space – Sebagian besar MRTK boilerplate
- Memperkenalkan MRTK untuk Unity.
- Ada UI yang melekat pada kamera yang merinci status keseluruhan Azure Object Anchors (Lihat
OverlayDebugText.cs
).
Object Mixed Reality Play Space – Sebagian besar Azure Object Anchors terkait, tetapi dengan beberapa kontrol MRTK. Dua skrip, TrackableObjectSearch
dan ObjectTracker
, dilampirkan ke induk, mewakili antarmuka utama dengan Azure Object Anchors.
- Menu
- Utamanya kode MRTK, tetapi interaksi UI diarahkan pada fungsionalitas Azure Object Anchors.
- Skrip
TrackableObjectMenu
yang dilampirkan melakukan pekerjaan utama merutekan acara MRTK UI ke panggilan Azure Object Anchors yang sesuai. - Menu tangan MRTK.
- WorkspaceBoundingBox
- Berisi skrip MRTK yang terkait dengan pengendalian kotak batas.
- Juga berisi objek anak
ModelVis
, yang digunakan untuk memvisualisasikan model Azure Object Anchors sebelum deteksi terjadi untuk membantu penyelarasan selama deteksi-deteksi yang rumit.
Penjelasan menu
Sebelum menyelam ke dalam skrip, mari kita terlebih dahulu memeriksa item menu. Dengan cara ini kita dapat mereferensikan bagaimana item menu ini berinteraksi dengan skrip.
Submenu bawah dan kanan tidak muncul secara otomatis, tetapi masing-masing disetel dengan Search Area Settings
dan Tracker Settings
, secara berurutan.
Menu Utama
- Mulai Pencarian
- Mulai mencari objek di area pencarian yang ditentukan.
- Menyetel Pemetaan Spasial
- Siklus antara menunjukkan pemetaan spasial selagi mencari, bisa selalu menunjukkan pemetaan spasial, atau tidak pernah menunjukkan pemetaan spasial.
- Pengaturan Pelacak / Pengaturan Area pencarian
- Menyetel submenu terkait.
- Mulai Melacak/Berhenti Melacak
- Memulai atau mengakhiri pelacakan diagnostik.
- Pelacakan Unggahan
- Mengunggah pelacakan diagnostik ke Microsoft untuk analisis debug.
Menu Pengaturan Pelacak
- Akurasi Tinggi
- Saat diaktifkan,
ObjectInstanceTrackingMode
diatur keHighLatencyAccuratePosition
. - Saat dinonaktifkan,
ObjectInstanceTrackingMode
diatur keLowLatencyCoarsePosition
.
- Saat diaktifkan,
- Perataan Vertikal Rileks
- Saat diaktifkan, mengatur
AllowedVerticalOrientationInDegrees
ke 10 derajat. Fitur ini memungkinkan deteksi objek yang berada di landai. - Saat dinonaktifkan, mengatur
AllowedVerticalOrientationInDegrees
ke 0 derajat.
- Saat diaktifkan, mengatur
- Izinkan Perubahan Skala
- Saat diaktifkan, mengatur
MaxScaleChange
ke 0.1. Fitur ini memungkinkan Azure Object Anchors untuk menyesuaikan skala objek berdasarkan penyesuaian skala pelacakan HoloLens. - Saat dinonaktifkan, mengatur
MaxScaleChange
ke 0.
- Saat diaktifkan, mengatur
- Penggeser Rasio Cakupan
- Menyesuaikan rasio cakupan yang diperlukan agar deteksi objek mempertimbangkan kecocokan. Nilai yang lebih rendah akan meningkatkan frekuensi deteksi. Fitur ini akan lebih disukai untuk mendeteksi objek yang sulit, tetapi juga dapat menyebabkan peningkatan deteksi objek positif palsu.
Menu Pengaturan Area Pencarian
- Kunci Area Pencarian
- Saat diaktifkan, mencegah pengguna untuk mengubah area pencarian.
- Menyesuaikan Area Pencarian Secara Otomatis
- Ketika diaktifkan, memungkinkan skrip untuk memindahkan area pencarian untuk memperbaiki proses deteksi.
- Menyiklus Mesh
- Menyiklus melalui mesh untuk objek
.ou
yang dapat dideteksi, dan tidak ada mesh.
- Menyiklus melalui mesh untuk objek
Skrip
- AutonomousSearchArea.cs
- Skrip ini dilampirkan ke
WorkspaceBoundingBox
. Skrip mencoba untuk menskalakan dan menempatkanWorkspaceBoundingBox
secara otomatis. Ini diaktifkan ketikaAuto-Adjust Search Area
diaktifkan.
- Skrip ini dilampirkan ke
- ObjectAnchorsSubscription.cs
- Skrip ini mengemas informasi yang diperlukan untuk mengunggah data diagnostik.
- ObjectTracker.cs
- Skrip ini menjembatani antara Unity dan aspek deteksi Azure Object Anchors SDK.
- ObjectTrackerDiagnostics.cs
- Skrip ini mengelola fitur diagnostik SDK Azure Object Anchors.
- OverlayDebugText.cs
- Skrip ini ditempelkan pada kamera utama. Skrip ini bertanggung jawab untuk menampilkan status keseluruhan sampel dan Azure Object Anchors kepada pengguna.
- PositionDebugInfo.cs
- Skrip ini hanya memaksa teks debug yang dilampirkan ke objek yang terdeteksi untuk menghadapi pengguna.
- SearchAreaController.cs
- Skrip ini mengelola status dari
WorkspaceBoundingBox
yang digunakan untuk menunjukkan di mana Azure Object Anchors harus mencari objek.
- Skrip ini mengelola status dari
- SearchAreaModelVisualization.cs
- Skrip ini memungkinkan fungsionalitas
Cycle Mesh
di bawahSearch Area Settings
.
- Skrip ini memungkinkan fungsionalitas
- SpatialMappingController.cs
- Skrip ini mengelola kapan pemetaan spasial harus diaktifkan berdasarkan interaksi dengan
Toggle Spatial Mapping
di bawahMain Menu
.
- Skrip ini mengelola kapan pemetaan spasial harus diaktifkan berdasarkan interaksi dengan
- TextToSpeech.cs
- Skrip ini mengambil teks dan mengubahnya menjadi ucapan.
- TrackableObjectData.cs
- Skrip ini mewakili data untuk objek yang dapat dilacak.
- TrackableObjectDataLoader.cs
- Skrip ini melakukan pekerjaan memuat file-file
.ou
dan mengubahnya menjadi itemTrackableObjectData
.
- Skrip ini melakukan pekerjaan memuat file-file
- TrackableObjectMenu.cs
- Sebagian besar interaksi pengguna mengalir dari UI ke skrip ini kemudian ke skrip yang sesuai. Misalnya,
TrackableObjectMenu
memilikiToggleSpatialMapping
, yang akan dialihkan keSpatialMappingController
.
- Sebagian besar interaksi pengguna mengalir dari UI ke skrip ini kemudian ke skrip yang sesuai. Misalnya,
- TrackableObjectSearch.cs
- Skrip ini melakukan beberapa manajemen ringan dari area pencarian. Secara khusus, interaksi di mana pengguna mengetuk ke ruang, dan kotak pencarian ditempatkan di depan pengguna. Ini juga membuat bagian dalam kotak pencarian tidak dirender saat mencari atau saat objek sedang terdeteksi, untuk mencegah rendering penuh dari menghalangi objek.
- TrackedObject.cs
- Skrip utama pada
TrackableObjectPrefab
. Skrip ini menjaga status visualisasi objek yang terdeteksi oleh Azure Object Anchors.
- Skrip utama pada
- TrackedObjectData.cs
- Skrip ini berisi informasi tentang objek yang sedang dilacak oleh Azure Object Anchors.
Prefabs
- TrackableObjectPrefab
- Prefab yang dibuat saat objek terdeteksi oleh AzureObjectAnchors. Anak dari prefab ini,
LogicalCenter
, mewakili bagian tengah objek, dan merupakan tempat yang tepat untuk memulai ketika mencoba melampirkan konten anak ke objek yang terdeteksi. Teks informasi yang ditampilkan oleh sampel dilampirkan ke pusat logika ini.
- Prefab yang dibuat saat objek terdeteksi oleh AzureObjectAnchors. Anak dari prefab ini,