Sistem inti — MRTK2

Inti dari sistem input adalah InputSystem, yang merupakan layanan yang bertanggung jawab untuk menginisialisasi dan mengoperasikan semua fungsi terkait input yang terkait dengan MRTK.

Catatan

Diasumsikan bahwa pembaca telah membaca dan memiliki pemahaman dasar tentang bagian terminologi .

Layanan ini bertanggung jawab untuk:

  • Membaca profil sistem input
  • Memulai penyedia data yang dikonfigurasi (misalnya, Windows Mixed Reality Device Manager dan OpenVR Device Manager).
  • Instansiasi GazeProvider, yang merupakan komponen yang bertanggung jawab untuk menyediakan informasi tatapan kepala gaya HoloLens (generasi ke-1) selain informasi tatapan mata gaya HoloLens 2.
  • Instansiasi FocusProvider, yang merupakan komponen yang bertanggung jawab untuk menentukan objek yang memiliki fokus. Ini dijelaskan secara lebih mendalam di bagian penunjuk dan fokus dokumentasi.
  • Menyediakan titik pendaftaran untuk semua peristiwa input (sebagai pendengar global).
  • Menyediakan kemampuan pengiriman peristiwa untuk peristiwa input tersebut.

Peristiwa input

Peristiwa input umumnya diaktifkan pada dua saluran yang berbeda:

Objek dalam fokus

Peristiwa dapat dikirim langsung ke GameObject yang memiliki fokus. Misalnya, objek mungkin memiliki skrip yang mengimplementasikan IMixedRealityTouchHandler. Objek ini akan mendapatkan peristiwa sentuhan ketika difokuskan oleh tangan yang berada di dekatnya. Jenis peristiwa ini "naik" hierarki GameObject sampai menemukan GameObject yang mampu menangani peristiwa.

Ini dilakukan dengan menggunakan ExecuteHierarchy dari dalam implementasi sistem input default.

Pendengar global

Peristiwa dapat dikirim ke pendengar global. Anda dapat mendaftar untuk semua peristiwa input dengan menggunakan antarmuka sistem IMixedRealityEventSystem input. Disarankan untuk menggunakan metode RegisterHandler untuk mendaftar untuk peristiwa global - fungsi yang tidak Register digunakan lagi akan menyebabkan pendengar mendapatkan pemberitahuan tentang SEMUA peristiwa input, bukan hanya peristiwa input dari jenis tertentu (di mana jenis ditentukan oleh antarmuka peristiwa).

Perhatikan bahwa pendengar fallback adalah jenis listener global lain yang juga tidak disarankan karena mereka akan menerima setiap peristiwa input tunggal yang belum ditangani di tempat lain di adegan.

Urutan pengiriman peristiwa

Umumnya, acara dikirim ke pendengar dengan cara berikut. Perhatikan bahwa jika salah satu langkah di bawah ini menandai peristiwa sebagai ditangani, proses pengiriman peristiwa akan berhenti.

  1. Acara dikirim ke pendengar global.
  2. Peristiwa dikirim ke dialog modal objek yang difokuskan.
  3. Peristiwa dikirim ke objek yang difokuskan.
  4. Peristiwa dikirim ke pendengar fallback.

Manajer perangkat dan penyedia data

Entitas ini bertanggung jawab untuk berinteraksi dengan API tingkat bawah (seperti API Windows Mixed Reality, atau API OpenVR) dan menerjemahkan data dari sistem tersebut ke dalam api yang sesuai dengan abstraksi input tingkat mrtk yang lebih tinggi. Mereka bertanggung jawab untuk mendeteksi, membuat, dan mengelola masa pakai pengontrol.

Alur dasar manajer perangkat melibatkan:

  1. Manajer perangkat dibuat oleh layanan sistem input.
  2. Manajer perangkat mendaftar dengan sistem yang mendasarnya (misalnya, manajer perangkat Windows Mixed Reality akan mendaftar untuk peristiwa input dan gerakan.
  3. Ini menciptakan pengontrol yang ditemukannya dari sistem yang mendasar (misalnya penyedia dapat mendeteksi keberadaan tangan artikulasi)
  4. Dalam perulangan Update(), panggil UpdateController() untuk melakukan polling untuk status baru sistem yang mendasar dan perbarui representasi pengontrolnya.