Bagikan melalui


Penangan manipulasi — MRTK2

Penangan manipulasi

Skrip ManipulationHandler memungkinkan objek dibuat bergerak, dapat diskalakan, dan dapat di-rotatable menggunakan satu atau dua tangan. Manipulasi dapat dibatasi sehingga hanya memungkinkan jenis transformasi tertentu. Skrip ini bekerja dengan berbagai jenis input termasuk input tangan artikulasi HoloLens 2, sinar tangan, input gerakan HoloLens (generasi ke-1), dan input pengontrol gerakan headset imersif.

Cara menggunakan handler manipulasi

ManipulationHandler Tambahkan komponen skrip ke GameObject. Pastikan juga untuk menambahkan collider ke objek, yang cocok dengan batas yang dapat diambil.

Untuk membuat objek merespons input tangan yang diartikulasikan dekat, tambahkan NearInteractionGrabbable skrip juga.

Menggunakan handler manipulasi di editor unity

Properti pemeriksa

Struktur Handler Manipulasi

Transformasi Host Transformasi yang akan diseret. Default ke objek komponen.

Jenis Manipulasi Menentukan apakah objek dapat dimanipulasi menggunakan satu tangan, dua tangan, atau keduanya.

  • Satu tangan saja
  • Dua tangan saja
  • Satu dan Dua diserahkan

Jenis Manipulasi Dua Tangan

  • Skala: Hanya penskalaian yang diizinkan.
  • Putar: Hanya rotasi yang diizinkan.
  • Skala Pemindahan: Memindahkan dan menskalakan diperbolehkan.
  • Pindahkan Putar: Memindahkan dan memutar diperbolehkan.
  • Putar Skala: Memutar dan menskalakan diperbolehkan.
  • Pindahkan Putar Skala: Memindahkan, memutar, dan menskalakan diizinkan.

Penangan Manipulasi

Izinkan Manipulasi Jauh Menentukan apakah manipulasi dapat dilakukan menggunakan interaksi jauh dengan penunjuk.

Mode Rotasi Satu Tangan Dekat Menentukan bagaimana objek akan bertingkah ketika sedang diambil dengan satu tangan / pengontrol di dekatnya.

Mode Rotasi Satu Tangan Jauh Menentukan bagaimana objek akan bertingkah ketika sedang diambil dengan satu tangan/ pengontrol pada jarak.

Opsi Mode Rotasi Satu Tangan Menentukan bagaimana objek akan berputar ketika sedang diambil dengan satu tangan.

  • Pertahankan rotasi asli: Tidak memutar objek karena sedang dipindahkan
  • Pertahankan rotasi kepada pengguna: Mempertahankan rotasi asli objek untuk sumbu X/Y kepada pengguna
  • Gravitasi yang selaras mempertahankan rotasi kepada pengguna: Mempertahankan rotasi asli objek kepada pengguna, tetapi membuat objek vertikal. Berguna untuk objek dengan kontrol batas.
  • Pengguna wajah: Memastikan objek selalu menghadap pengguna. Berguna untuk slate/panel.
  • Menghadap jauh dari pengguna: Memastikan objek selalu menghadap jauh dari pengguna. Berguna untuk slates/panel yang dikonfigurasi mundur.
  • Putar tentang pusat objek: Hanya berfungsi untuk tangan/pengontrol yang diartikulasikan. Putar objek menggunakan rotasi tangan/pengontrol, tetapi tentang titik pusat objek. Berguna untuk memeriksa pada jarak.
  • Putar tentang titik penangkapan: Hanya berfungsi untuk tangan/pengontrol yang diartikulasikan. Putar objek seolah-olah sedang dipegang oleh tangan/pengontrol. Berguna untuk inspeksi.

Perilaku Rilis Saat objek dirilis, tentukan perilaku gerakan fisiknya. Membutuhkan komponen rigidbody untuk berada di objek itu.

  • Tidak ada
  • Segala sesuatu
  • Pertahankan Kecepatan
  • Jaga Kecepatan Angular

Batasan pada Rotasi Menentukan sumbu mana objek akan berputar ketika berinteraksi.

  • Tidak ada
  • Sumbu-X Saja
  • Sumbu Y Saja
  • Sumbu Z Saja

Gunakan ruang lokal untuk batasan Tombol untuk beralih antara menerapkan batasan sehubungan dengan sumbu ruang dunia, atau sumbu ruang lokal.

Batasan pada Gerakan

  • Tidak ada
  • Perbaiki jarak dari kepala

Menghaluskan Aktif Menentukan apakah penghalusan aktif.

Smoothing Amount One Hand Jumlah penghalusan untuk diterapkan pada pergerakan, skala, rotasi. Penghalusan 0 berarti tidak ada penghalusan. Nilai maks berarti tidak ada perubahan pada nilai.

Acara

Handler manipulasi menyediakan peristiwa berikut:

  • OnManipulationStarted: Diaktifkan saat manipulasi dimulai.
  • OnManipulationEnded: Menembak ketika manipulasi berakhir.
  • OnHoverStarted: Menembak ketika tangan / pengontrol mengarahkan yang dapat dimanipulasi, dekat atau jauh.
  • OnHoverEnded: Menembak ketika tangan / pengontrol melayang-melayang yang dapat dimanipulasi, dekat atau jauh.