Input
Unity поддерживает ввод с клавиатуры, мыши, джойстика и геймпада.
Виртуальные оси и кнопки могут быть созданы в Input Manager и пользователи могут настраивать ввод с клавиатуры в приятном конфикурационном диалоговом окне.

You can setup Joysticks, Gamepads, Keyboard, and Mouse, then access them all through one simple scripting interface.
Из скрипта доступ ко всем виртуальным осям осуществляется по их именам.
Каждый проект содержит по умолчанию следующие оси ввода:
Horizontal и Vertical назначены на w, a, s, d и клавиши стрелок.
Fire1, Fire2, Fire3 назначены на Ctrl, Alt и Command.
Mouse X и Mouse Y назначены на перемещение мыши.
Window Shake X and Window Shake Y назначены на перемещение окна.
Adding new Input Axes
Если нужно добавить новые виртуальные оси, используется Edit>Project Settings>Input. Здесь настраиваются все оси.

Вы можете назначить каждую ось на две клавиши джойстика, мыши или клавиатуры.
| Name | Имя оси, по которому она будет вызываться из скрипта. |
| Descriptive Name | Positive value name displayed in the Input tab of the Configuration dialog for standalone builds. |
| Descriptive Negative Name | Negative value name displayed in the Input tab of the Configuration dialog for standalone builds. |
| Negative Button | The button used to push the Axis in the negative direction. |
| Positive Button | The button used to push the Axis in the positive direction. |
| Alt Negative Button | Alternative button used to push the Axis in the negative direction. |
| Alt Positive Button | Alternative button used to push the Axis in the positive direction. |
| Gravity | Speed in units per second that the Axis falls toward neutral when no buttons are pressed. |
| Dead | Size of the analog dead zone. All analog device values within this range result map to neutral. |
| Sensitivity | Speed in units per second that the the Axis will move toward the target value. This is for digital devices only. |
| Snap | If enabled, the Axis value will reset to zero when pressing a button of the opposite direction. |
| Invert | If enabled, the Negative Buttons provide a positive value, and vice-versa. |
| Type | The type of inputs that will control this Axis. |
| Axis | The axis of a connected device that will control this Axis. |
| Joy Num | The connected Joystick that will control this Axis. |
Use these settings to fine tune the look and feel of input. They are all documented with tooltips in the Editor as well.
Using Input Axes from Scripts
You can query the current state from a script like this:
value = Input.GetAxis ("Horizontal");
An axis has a value between -1 and 1. The neutral position is 0. This is the case for Joystick input and Keyboard input.
However, Mouse delta and Window Shake delta are how much the mouse or window moved during the last frame. This means it can be larger than 1 or smaller than -1 when the user moves the mouse quickly.
It is possible to create multiple Axes with the same name. When getting the input axis, the axis with the largest absolute value will be returned. This makes it possible to assign more than one input device to one Axis name. For example, create one axis for keyboard input and one axis for joystick input with the same name. If the user is using the joystick, input will come from the joystick, otherwise input will come from the keyboard. This way you don't have to think at all about from where the input comes when writing scripts.
Button names
To map a key to an axis, you have to enter the key's name in the Positive Button or Negative Button property in the Inspector.
The names of keys follow this convention:
- Normal keys: "a", "b", "c" ...
- Number keys: "1", "2", "3", ...
- Arrow keys: "up", "down", "left", "right"
- Keypad keys: "[1]", "[2]", "[3]", "[+]", "[equals]"
- Modifier keys: "right shift", "left shift", "right ctrl", "left ctrl", "right alt", "left alt", "right cmd", "left cmd"
- Mouse Buttons: "mouse 0", "mouse 1", "mouse 2", ...
- Joystick Buttons (from any joystick): "joystick button 0", "joystick button 1", "joystick button 2", ...
- Joystick Buttons (from a specific joystick): "joystick 0 button 0", "joystick 0 button 1", "joystick 1 button 0", ...
- Special keys: "backspace", "tab", "return", "escape", "space", "delete", "enter", "insert", "home", "end", "page up", "page down"
- Function keys: "f1", "f2", "f3", ...
The names used to identify the keys are the same in the scripting interface and the Inspector.
value = Input.GetKey ("a");


