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.
  • 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.
  • Skrip
    • Berisi skrip yang ditulis untuk sampel.

Adegan Unity

Mixed Reality Play Space – Sebagian besar MRTK boilerplate

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 anakModelVis, yang digunakan untuk memvisualisasikan model Azure Object Anchors sebelum deteksi terjadi untuk membantu penyelarasan selama deteksi-deteksi yang rumit.

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.

menu mrtk

Submenu bawah dan kanan tidak muncul secara otomatis, tetapi masing-masing disetel dengan Search Area Settingsdan Tracker Settings, secara berurutan.

  • 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 ke HighLatencyAccuratePosition.
    • Saat dinonaktifkan, ObjectInstanceTrackingMode diatur ke LowLatencyCoarsePosition.
  • 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.
  • 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.
  • 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.

Skrip

  • AutonomousSearchArea.cs
    • Skrip ini dilampirkan ke WorkspaceBoundingBox. Skrip mencoba untuk menskalakan dan menempatkan WorkspaceBoundingBox secara otomatis. Ini diaktifkan ketika Auto-Adjust Search Area diaktifkan.
  • 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.
  • SearchAreaModelVisualization.cs
    • Skrip ini memungkinkan fungsionalitas Cycle Mesh di bawah Search Area Settings.
  • SpatialMappingController.cs
    • Skrip ini mengelola kapan pemetaan spasial harus diaktifkan berdasarkan interaksi dengan Toggle Spatial Mapping di bawah Main Menu.
  • 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 item TrackableObjectData.
  • TrackableObjectMenu.cs
    • Sebagian besar interaksi pengguna mengalir dari UI ke skrip ini kemudian ke skrip yang sesuai. Misalnya, TrackableObjectMenu memiliki ToggleSpatialMapping, yang akan dialihkan ke SpatialMappingController.
  • 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.
  • 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.

Langkah berikutnya

FAQ