Input
Masukan perangkat seluler

Input Manager

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:

  • Key mengacu pada setiap kunci pada keyboard fisik, seperti W, Pergeseran, atau bar ruang.
  • Button mengacu pada tombol pada pengontrol fisik (misalnya, gamepads), seperti tombol X pada remote control.
  • A virtual axis (plural: axes) dipetakan ke kontrol, seperti tombol atau kunci. Ketika pengguna mengaktifkan kontrol, sumbu menerima nilai dalam kisaran [–1.1]. Anda dapat menggunakan nilai ini dalam scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
    Lihat di Glossary
    Anda.

Kunci fisik

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.

Virtual axes

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:

  • Antara -1 dan 1 untuk joystick dan input keyboard. Posisi netral untuk sumbu ini adalah 0. Beberapa jenis kontrol, seperti tombol pada keyboard, tidak sensitif terhadap intensitas input, sehingga mereka tidak dapat menghasilkan nilai selain -1, 0, atau 1.
  • Mouse delta (bagaimana mouse telah pindah selama bingkai terakhir) untuk input mouse. Nilai untuk sumbu input mouse dapat lebih besar dari 1 atau lebih kecil dari -1 ketika pengguna bergerak mouse dengan cepat.

Menambahkan, menghapus, dan menyalin virtual axes

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:

  • Mengurangi jumlah di bidang Size. Ini menghilangkan sumbu terakhir dalam daftar.
  • Klik kanan setiap sumbu, dan pilih Delete Array Element.
    Note: Anda tidak bisa membatalkan tindakan ini.

Untuk menyalin sumbu virtual, klik kanan dan pilih Duplicate Array Element.

Pemetaan kapak virtual untuk mengontrol

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.

Menggunakan kapak virtual dalam skrip

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.

Input
Masukan perangkat seluler