Panduan port input untuk Unity

Anda dapat memindahkan logika input anda ke Windows Mixed Reality dengan menggunakan salah satu dari dua pendekatan:

API Input.GetButton dan Input.GetAxis Umum

Unity saat ini menggunakan API dan Input.GetAxis umumnya Input.GetButton untuk mengekspos input untuk Oculus SDK dan OpenVR SDK. Jika aplikasi Anda sudah menggunakan API ini untuk input, API ini adalah jalur termampu untuk mendukung pengontrol gerakan di Windows Mixed Reality. Anda hanya perlu memetakan ulang tombol dan sumbu di Manajer Input.

Untuk informasi selengkapnya, lihat tabel pemetaan tombol/sumbu Unity dan gambaran umum API Unity Umum.

Penting

Jika Anda menggunakan pengontrol HP Reverb G2, lihat Pengontrol HP Reverb G2 di Unity untuk instruksi pemetaan input lebih lanjut.

API input XR

Rilis Unity telah mengeluarkan XR secara bertahap. API WSA mendukung XR SDK. Untuk proyek baru, yang terbaik adalah menggunakan API input XR dari awal. Untuk informasi selengkapnya, lihat Input Unity XR.

Jika aplikasi Anda sudah membangun logika input kustom untuk setiap platform, Anda dapat menggunakan API input spasial khusus Windows di namespace UnityEngine.InputSystem.XR . API ini memungkinkan Anda mengakses lebih banyak informasi, seperti akurasi posisi atau jenis sumber, untuk membedakan tangan dan pengontrol di HoloLens.

Catatan

Jika Anda menggunakan pengontrol HP Reverb G2, semua API input terus berfungsi kecuali InteractionSource.supportsTouchpad, yang mengembalikan false tanpa data touchpad.

Pose genggaman dan pose penunjuk

Windows Mixed Reality mendukung pengontrol gerakan dalam berbagai faktor bentuk. Setiap desain pengontrol berbeda dalam hubungannya antara posisi tangan pengguna dan arah ke depan alami yang digunakan aplikasi untuk menunjuk saat merender pengontrol.

Untuk mewakili pengontrol ini dengan lebih baik, Anda dapat menyelidiki dua jenis pose untuk setiap sumber interaksi, pose genggaman , dan pose pointer. Anda mengekspresikan semua koordinat pose di koordinat dunia Unity.

Pose genggaman

Pose genggaman mewakili lokasi telapak tangan yang terdeteksi oleh HoloLens, atau telapak tangan memegang pengontrol gerakan. Pada headset imersif, gunakan pose ini untuk merender tangan pengguna atau objek yang dipegang di tangan pengguna, seperti pedang atau pistol.

  • Posisi pegangan adalah sentroid telapak tangan saat memegang pengontrol secara alami, disesuaikan ke kiri atau kanan untuk memusatkan posisi di dalam pegangan.
  • Sumbu kanan orientasi pegangan adalah sinar yang normal untuk telapak tangan Anda, maju dari telapak tangan kiri, mundur dari telapak kanan, ketika Anda benar-benar membuka tangan Anda untuk membentuk pose lima jari datar.
  • Sumbu maju orientasi genggaman adalah sinar yang menunjuk ke depan melalui tabung yang dibentuk oleh jari-jari non-jempol Anda ketika Anda menutup sebagian tangan Anda, seolah-olah memegang pengontrol.
  • Sumbu atas orientasi genggaman adalah sumbu atas yang disiratkan oleh definisi kanan dan maju.

Akses pose genggaman melalui XR Unity . API InputTracking.GetNodeStates , seperti XRNodeState.TryGetPosition atau XRNodeState.TryGetRotation.

Pose penunjuk

Pose penunjuk mewakili ujung pengontrol yang menunjuk ke depan. Pose ini paling baik digunakan untuk ray cast yang menunjuk ke UI saat Anda merender model pengontrol itu sendiri.

Pose penunjuk hanya tersedia di Unity melalui API khusus MR Windows, sourceState.sourcePose.TryGetPosition/Rotation, meneruskan InteractionSourceNode.Pointer sebagai argumen.

Lihat juga