Manipulator objek — MRTK2

Manipulator objek

ObjectManipulator adalah komponen baru untuk perilaku manipulasi, yang sebelumnya ditemukan di ManipulationHandler. Manipulator objek membuat sejumlah peningkatan dan penyederhanaan. Komponen ini adalah pengganti untuk handler manipulasi, yang tidak akan digunakan lagi.

Skrip ObjectManipulator membuat objek dapat di-movable, dapat diskalakan, dan dapat di-rotatable menggunakan satu atau dua tangan. Manipulator objek dapat dikonfigurasi untuk mengontrol bagaimana objek akan merespons berbagai input. Skrip harus bekerja dengan sebagian besar bentuk interaksi, seperti tangan artikulasi HoloLens 2, sinar tangan HoloLens 2, tatapan dan gerakan HoloLens 1 dan input pengontrol gerakan headset imersif.

Cara menggunakan manipulator objek

Untuk menggunakan manipulator objek, pertama-tama ObjectManipulator 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.

Perilaku fisika dapat diaktifkan untuk manipulator objek dengan menambahkan komponen rigidbody ke objek. Perilaku fisika yang diaktifkan dengan menambahkan komponen ini dibahas secara lebih rinci dalam Fisika dan tabrakan.

Selain itu, manipulasi dapat dibatasi dengan menambahkan komponen batasan manipulasi ke objek. Ini adalah komponen khusus yang bekerja dengan manipulasi dan mengubah perilaku manipulasi dalam beberapa cara.

Menggunakan Handler Manipulasi di editor Unity

Properti dan bidang inspektur

Struktur Manipulator Objek

Properti umum

Transformasi host

Transformasi objek yang akan dimanipulasi. Default ke objek komponen.

Jenis manipulasi

Menentukan apakah objek dapat dimanipulasi menggunakan satu atau dua tangan. Karena properti ini adalah bendera, kedua opsi dapat dipilih.

  • Satu tangan: Memungkinkan manipulasi satu tangan jika dipilih.
  • Dua tangan: Memungkinkan dua manipulasi tangan jika dipilih.

Izinkan manipulasi jauh

Menentukan apakah manipulasi dapat dilakukan menggunakan interaksi jauh dengan penunjuk.

Satu properti manipulasi yang diserahkan

Mode rotasi satu tangan di dekat

Menentukan bagaimana objek akan bertingkah ketika sedang diambil dengan satu tangan di dekatnya. Opsi ini hanya berfungsi untuk tangan artikulasi.

  • Putar tentang pusat objek: Objek berputar menggunakan rotasi tangan, tetapi tentang titik pusat objek. Objek akan tampak bergerak lebih sedikit saat berputar, tetapi mungkin ada perasaan pemutusan antara tangan dan objek. Lebih berguna untuk interaksi jauh.
  • Putar tentang titik penangkapan: Putar objek dengan tangan tentang titik tangkapan antara ibu jari dan jari telunjuk. Seharusnya terasa seolah-olah objek sedang dipegang oleh tangan.

Mode rotasi satu tangan jauh

Menentukan bagaimana objek akan bertingkah ketika sedang diambil dengan satu tangan pada jarak. Opsi ini hanya berfungsi untuk tangan artikulasi.

  • Putar tentang pusat objek: Putar objek menggunakan rotasi tangan, tetapi tentang titik pusat objek. Berguna untuk memeriksa pada jarak tanpa pusat objek bergerak saat objek berputar.
  • Putar tentang titik penangkapan: Putar objek menggunakan rotasi tangan, tetapi tentang titik temuan sinar penunjuk. Berguna untuk inspeksi.

Dua properti manipulasi yang diserahkan

Jenis manipulasi dua tangan

Menentukan bagaimana dua manipulasi tangan dapat mengubah objek. Karena properti ini adalah bendera, sejumlah opsi dapat dipilih.

  • Pemindahan: Pemindahan diperbolehkan jika dipilih.
  • Skala: Penskalan diperbolehkan jika dipilih.
  • Putar: Rotasi diperbolehkan jika dipilih.

Penangan Manipulasi

Batasan

Aktifkan batasan

Pengaturan ini akan mengaktifkan manajer batasan tertaut. Perubahan transformasi akan diproses oleh batasan yang terdaftar ke manajer batasan yang dipilih.

Manajer batasan

Dropdown memungkinkan untuk memilih salah satu manajer batasan terlampir. Manipulator objek memastikan ada manajer batasan yang terpasang setiap saat. Perhatikan bahwa beberapa komponen dengan jenis yang sama akan muncul dengan nama yang sama dalam unity. Untuk mempermudah membedakan antara beberapa manajer batasan pada objek yang sama, opsi yang tersedia akan menampilkan petunjuk tentang konfigurasi manajer batasan yang dipilih (pemilihan batasan manual atau otomatis).

Masuk ke komponen

Pilihan manajer batasan dilengkapi dengan tombol Buka komponen . Tombol ini akan menyebabkan pemeriksa menggulir ke komponen yang dipilih sehingga dapat dikonfigurasi.

Fisika

Pengaturan di bagian ini hanya muncul ketika objek memiliki komponen RigidBody.

Perilaku rilis

Tentukan properti fisik mana yang harus disimpan objek yang dimanipulasi setelah rilis. Karena properti ini adalah bendera, kedua opsi dapat dipilih.

  • Keep Velocity: Ketika objek dirilis, jika opsi ini dipilih, opsi ini akan menjaga kecepatan liniernya.
  • Keep Angular Velocity: Ketika objek dirilis, jika opsi ini dipilih, itu akan menjaga kecepatan sudutnya.

Gunakan kekuatan untuk manipulasi dekat

Apakah kekuatan fisika digunakan untuk memindahkan objek saat melakukan manipulasi dekat. Mengatur ini ke false akan membuat objek terasa lebih terhubung langsung ke tangan pengguna. Mengatur ini ke true akan menghormati massa dan inertia objek, tetapi mungkin merasa seolah-olah objek terhubung melalui musim semi. Defaultnya adalah false.

Menghaluskan

Menghaluskan jauh

Apakah smoothing independen kecepatan bingkai diaktifkan untuk interaksi jauh. Penghalusan jauh diaktifkan secara default.

Menghaluskan dekat

Apakah smoothing independen kecepatan bingkai diaktifkan untuk interaksi dekat. Penghalusan dekat dinonaktifkan secara default karena efeknya mungkin dianggap 'terputus' dari tangan.

Menghaluskan aktif

Usang dan akan dihapus dalam versi yang akan datang. Aplikasi harus menggunakan SmoothingFar, SmoothingNear atau kombinasi keduanya.

Pindahkan waktu lerp

Jumlah penghalusan untuk diterapkan pada gerakan. Penghalusan 0 berarti tidak ada penghalusan. Nilai maks berarti tidak ada perubahan pada nilai.

Putar waktu lerp

Jumlah penghalusan untuk diterapkan pada rotasi. Penghalusan 0 berarti tidak ada penghalusan. Nilai maks berarti tidak ada perubahan pada nilai.

Menskalakan waktu lerp

Jumlah penghalusan untuk diterapkan pada skala. Penghalusan 0 berarti tidak ada penghalusan. Nilai maks berarti tidak ada perubahan pada nilai.

Peristiwa manipulasi

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.

Urutan kebakaran peristiwa untuk manipulasi adalah:

OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded

Jika tidak ada manipulasi, Anda masih akan mendapatkan peristiwa hover dengan urutan kebakaran berikut:

OnHoverStarted ->OnhoverEnded

Fisika dan tabrakan

Perilaku fisika dapat diaktifkan dengan menambahkan komponen rigidbody ke objek yang sama dengan manipulator objek. Ini tidak hanya memungkinkan konfigurasi perilaku rilis di atas, ini juga memungkinkan tabrakan. Tanpa komponen yang kaku, tabrakan tidak berpura-pura dengan benar selama manipulasi:

  • Tabrakan antara objek yang dimanipulasi dan tabrakan statis (yaitu objek dengan tabrakan tetapi tidak ada rigidbody) tidak berfungsi, objek yang dimanipulasi melewati lurus melalui collider statis yang tidak terpengaruh.
  • Tabrakan antara objek yang dimanipulasi dan rigidbody (yaitu objek dengan tabrakan dan rigidbody) menyebabkan rigidbody memiliki respons tabrakan, tetapi responsnya gelisah dan tidak wajar. Juga tidak ada respons tabrakan pada objek yang dimanipulasi.

Ketika rigidbody ditambahkan, tabrakan harus bekerja dengan benar.

Tanpa rigidbody

Tidak Ada Tubuh Kaku

Dengan rigidbody

Tubuh Kaku

Elastis (Eksperimental)

Elastis dapat digunakan saat memanipulasi objek melalui manipulator objek. Perhatikan bahwa sistem elastis masih dalam keadaan eksperimental. Untuk mengaktifkan elastis, tautkan komponen manajer elastis yang ada atau buat dan tautkan manajer elastis baru melalui tombol Add Elastics Manager .

Elastis Kontrol Batas

Lihat juga