Manipulator Objek — MRTK3

Manipulator objek

ObjectManipulator memungkinkan manipulasi objek yang intuitif dalam ruang 3D dengan perangkat input atau modalitas apa pun. Ini melakukan tugas yang mirip dengan XRI XRGrabInteractable, tetapi menawarkan fitur tambahan dan interaksi khusus realitas campuran. XRGrabInteractable Meskipun sepenuhnya kompatibel dengan interaksi kami (dan sebaliknya juga benar), kami masih menyarankan untuk menggunakan implementasi kami untuk pengalaman terbaik.

Catatan

ObjectManipulator dirancang khusus untuk memanipulasi objek 3D secara langsung dan intuitif. Jika Anda mencari interaksi antarmuka pengguna umum seperti pengguncur atau tombol, lihat artikel slider dan tombol kami sebagai gantinya. Hindari menggunakan ObjectManipulator untuk menulis interaksi mikro.

Arsitektur

Di MRTK v2, sebagian besar logika dan matematika yang kompleks untuk berbagai jenis input ditangani dengan ObjectManipulator sendirinya. Codepath terpisah harus dipertahankan untuk setiap jenis interaksi, menghasilkan lebih sedikit fleksibilitas saat memperkenalkan jenis interaksi baru. Di MRTK3, interaksi bertanggung jawab atas spesifikasi bagaimana jenis input tertentu diterjemahkan ke dalam manipulasi. ObjectManipulator hanya mendengarkan interaksi ini dan menerapkan transformasi yang relevan ke objek . Akibatnya, ObjectManipulator dalam MRTK3 secara signifikan lebih sederhana dan lebih kecil dalam cakupan. Lihat arsitektur Interactor untuk deskripsi tentang bagaimana interaksi berkomunikasi melalui transformasi lampiran mereka.

n-manipulasi tangan

ObjectManipulator mendukung sejumlah interaksi yang berpartisipasi, memungkinkan perilaku interaksi yang dapat digeneralisasi di satu, dua, dan bahkan nmanipulasi tangan. Umumnya, sentroid geometris dari semua attachTransforms interaktor yang berpartisipasi digunakan untuk interaksi multi-tangan. Sebagai XRI yang dapat berinteraksi, ini kompatibel dengan semua jenis interaksi yang mengirimkan transformasi lampiran yang berperilaku baik.

Jika Anda tidak ingin mengizinkan manipulasi multi-tangan, atur XRI Selection Mode ke Single. Kami alias properti ini di inspektur ke nama Multiselect Mode yang lebih spesifik untuk menghindari kebingungan dengan MRTK Selection Modekami , yang digunakan untuk menentukan apakah dapat berinteraksi dapat dialihkan (lihat dokumentasi Tombol untuk klarifikasi lebih lanjut.)

Mode multipilih

Batasan

ObjectManipulator menggunakan API Batasan untuk membatasi manipulasi. Lihat dokumentasi Batasan untuk informasi selengkapnya.

Injeksi logika manipulasi

Pengembang dapat menyesuaikan perilaku ObjectManipulator manipulasi tanpa perlu subkelas atau memodifikasi skrip itu sendiri. Cukup tulis baru ManipulationLogic<T> dan tentukan jenis di inspektur dengan ManipulationLogicTypes properti .

Demikian pula, pengembang dapat menyesuaikan perilaku smoothing dengan menulis implementasi ITransformSmoothingLogic baru dan menentukan jenis di inspektur dengan TransformSmoothingLogicType properti .

Penting

Jika Anda menemukan diri Anda menulis jenis logika manipulasi baru untuk jenis interaksi atau perangkat input baru, Anda mungkin akan turun ke jalur yang salah. Logika manipulasi yang ada harus berfungsi untuk jenis input arbitrer selama transformasi lampirkan bersifat baik. Pertimbangkan untuk menyesuaikan atau menulis interaksi baru sebagai gantinya. Baca dokumentasi arsitektur Interactor dan dokumentasi Arsitektur yang dapat berinteraksi untuk informasi selengkapnya tentang cara menulis logika interaksi yang berkinerja baik.