Jendela Input Manager memungkinkan Anda untuk menentukan sumbu input dan tindakan terkait mereka untuk Proyek Anda. Untuk mengaksesnya, dari menu utama Unity, pergi ke Edit > Project Settings, lalu pilih Input Manager dari navigasi di sebelah kanan.
Input Manager menggunakan jenis kontrol berikut:
Opsi kunci fisik memungkinkan Anda untuk memetakan kode kunci ke tata letak keyboard fisik, daripada tata letak spesifik bahasa yang dapat bervariasi antara pengguna di daerah yang berbeda.
Misalnya, pada beberapa keyboard baris pertama huruf membaca "QWERTY", dan pada orang lain membaca "AZERTY". Ini berarti jika Anda skrip kontrol khusus untuk menggunakan tombol “WASD” terkenal untuk gerakan, mereka tidak akan berada dalam pengaturan fisik yang benar (seperti pengaturan panah-key) pada keyboard AZERTY-layout.
Dengan Fisik Kunci diaktifkan, Unity menggunakan tata letak umum ANSI / ISO “Qwerty” untuk mewakili physical location dari kunci terlepas dari tata letak aktual pengguna. Ini berarti jika Anda menentukan kunci "Q", itu akan selalu menjadi huruf paling kiri pada baris pertama dari tombol surat, bahkan jika keyboard pengguna memiliki surat yang berbeda dalam posisi itu.
Catatan, Anda tidak boleh membaca input kunci untuk input teks dalam game, karena ini tidak akan memungkinkan pengguna untuk memasukkan karakter non-Latin. Sebagai gantinya, gunakan Input.compositionString
.
Setiap Proyek yang Anda buat memiliki sejumlah sumbu input yang dibuat secara default. Axes ini memungkinkan Anda untuk menggunakan keyboard, mouse, dan input joystick di Proyek Anda langsung.
Untuk melihat lebih banyak tentang sumbu ini, buka jendela Input Manager, dan klik panah di sebelah nama sumbu untuk memperluas sifatnya.
Setiap sumbu input memiliki sifat berikut:
Property | Function |
---|---|
Name | Nama Axis. Anda dapat menggunakan ini untuk mengakses sumbu dari skrip. |
Descriptive Name, Descriptive Negative Name | Nilai-nilai ini diuraikan dan tidak bekerja. Sebelumnya, mereka ditampilkan untuk pengguna di layar Kontrol Rebind di startup, tetapi layar ini juga telah diuraikan. |
Negative Button, Positive Button | Kontrol untuk mendorong sumbu dalam arah negatif dan positif masing-masing. Ini bisa menjadi kunci pada keyboard, atau tombol pada joystick atau mouse. |
Alt Negative Button, Alt Positive Button | Kontrol alternatif untuk mendorong sumbu dalam arah negatif dan positif masing-masing. |
Gravity | Kecepatan dalam unit per detik bahwa sumbu jatuh ke arah netral ketika tidak ada input hadir. |
Dead | Sejauh ini pengguna perlu memindahkan tongkat analog sebelum aplikasi Anda mendaftarkan gerakan. Pada runtime, masukan dari semua perangkat analog yang jatuh dalam kisaran ini akan dianggap null. |
Sensitivity | Kecepatan dalam unit per detik bahwa sumbu akan bergerak menuju nilai target. Ini hanya untuk perangkat digital. |
Snap | Jika diaktifkan, nilai sumbu akan ulang ke nol ketika menekan tombol yang sesuai dengan arah yang berlawanan. |
Type | Jenis input yang mengontrol sumbu. - Kunci atau Mouse button - Mouse Gerakan - Joystick Axis |
Axis | Sumbu perangkat yang terhubung yang mengontrol sumbu ini. |
JoyNum | Joystick yang terhubung yang mengontrol sumbu ini. Anda dapat memilih joystick khusus, atau input kueri dari semua joysticks. |
Nilai sumbu dapat:
Untuk menambahkan sumbu virtual, meningkatkan jumlah di bidang Size. Ini menciptakan sumbu baru di bagian bawah daftar. Sumbu baru menyalin sifat sumbu sebelumnya dalam daftar.
Untuk menghapus sumbu virtual, Anda dapat:
Untuk menyalin sumbu virtual, klik kanan dan pilih Duplicate Array Element.
Untuk memetakan kunci atau tombol ke sumbu, masukkan namanya di properti Positive Button atau Negative Button di Manajer Input.
Nama kunci mengikuti konvensi naming ini:
Key family | Naming convention |
---|---|
Letter keys | a b , c , ... |
Nomor kunci | 1 2 , 3 , ... |
Tombol panah | up , down , left , right |
Kunci Numpad | [1] , [2] , [3] , [+] , [equals] , ... |
Kunci pengubah | right shift , left shift , right ctrl , left ctrl , right alt , left alt , right cmd , left cmd |
Kunci khusus | backspace , tab , return , escape , space , delete , enter , insert , home , end , page up , page down , |
Kunci fungsi | f1 f2 , f3 , ... |
Tombol Mouse dinamakan mouse 0, mouse 1, mouse 2,
dan sebagainya.
Tombol joystick mengikuti konvensi naming ini:
Button origin | Naming convention |
---|---|
Tombol khusus pada joystick apa pun | joystick button 0 joystick button 1 , joystick button 2 , ... |
Tombol tertentu pada joystick tertentu | joystick 1 button 0 joystick 1 button 1 , joystick 2 button 0 , ... |
Anda juga dapat meminta masukan untuk kunci atau tombol tertentu dengan Input.GetKey
dan konvensi naming yang ditentukan di atas. Contoh:
Input.GetKey("a");
Cara lain untuk mengakses kunci adalah menggunakan numerasi KeyCode
.
Untuk mengakses kapak virtual dari skrip, Anda dapat menggunakan nama sumbu.
Misalnya, untuk mengukur nilai arus sumbu horisontal dan menyimpannya dalam variabel, Anda dapat menggunakan Input.GetAxis
seperti ini:
float horizontalInput = Input.GetAxis ("Horizontal");
Untuk axes yang menggambarkan peristiwa daripada gerakan (misalnya, menembak senjata dalam permainan), gunakan Input.GetButtonDown
bukan.
Jika dua atau lebih kapak memiliki nama yang sama, permintaan mengembalikan sumbu dengan nilai absolut terbesar. Ini memungkinkan untuk menetapkan lebih dari satu perangkat input ke nama sumbu.
Misalnya, Anda dapat membuat dua sumbu bernama Horizontal dan menetapkan satu ke input keyboard dan yang lain untuk input joystick. Jika pengguna menggunakan joystick, masukan berasal dari joystick dan input keyboard adalah null. Jika tidak, masukan berasal dari input keyboard dan joystick adalah null. Ini memungkinkan Anda untuk menulis skrip tunggal yang mencakup masukan dari beberapa pengontrol.
Example
Anda dapat menggunakan input dari sumbu Horizontal dan Vertical dan metode transform.Translate
untuk memindahkan GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary di ruang XZ (untuk, kembali, kiri, atau kanan). Tambahkan kode berikut ke metode update()
pada script yang melekat pada GameObject Anda ingin bergerak:
float moveSpeed = 10;
//Define the speed at which the object moves.
float horizontalInput = Input.GetAxis("Horizontal");
//Get the value of the Horizontal input axis.
float verticalInput = Input.GetAxis("Vertical");
//Get the value of the Vertical input axis.
transform.Translate(new Vector3(horizontalInput, verticalInput, 0) * moveSpeed * Time.deltaTime);
//Move the object to XYZ coordinates defined as horizontalInput, 0, and verticalInput respectively.
Time.deltaTime
mewakili waktu yang berlalu sejak bingkai terakhir. Menyediakan variabel moveSpeed
oleh Time.deltaTime
memastikan bahwa pergerakan GameObject pada kecepatan konstan setiap bingkai.