Manipulator Objek — MRTK3
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 n
manipulasi 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 Mode
kami , yang digunakan untuk menentukan apakah dapat berinteraksi dapat dialihkan (lihat dokumentasi Tombol untuk klarifikasi lebih lanjut.)
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.