Unity поддерживает ввод с клавиатуры, джойстика и гейпада.
Виртуальные оси и кнопки могут быть созданны в Input Manager, и конечные пользователи смогут настраивать ввод с клавиатуры на экране конфигурационного диалогового окна.
Вы можете настроить джойстики, геймпады, клавиатуру и мышь, затем обращаться к ним через один простой скриптовый интерфейс.
Из скриптов все виртуальные оси доступны по их именам.
Каждый проект при создании содержит следующие оси ввода по умолчанию:
Если вы желаете добавить новые виртуальные оси, перейдите в меню Edit->Project Settings->Input. Здесь вы можете также изменить настройки каждой оси.
Вы привязываете каждую ось к двум кнопкам на джойстике, мыши или клавиатуре.
Свойство: | Функция: |
---|---|
Name | Имя, используемое для проверки этой оси из скрипта. |
Descriptive Name | Имя положительного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках. |
Descriptive Negative Name | Имя отрицательного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках. |
Negative Button | Кнопка, используемая для смещения значения оси в отрицательном направлении. |
Positive Button | Кнопка, используемая для смещения значения оси в положительном направлении. |
Alt Negative Button | Альтернативная кнопка, используемая для смещения значения оси в отрицательном направлении. |
Alt Positive Button | Альтернативная кнопка, используемая для смещения значения оси в положительном направлении. |
Gravity | Скорость в единицах в секунду, с которой ось возвращается в нейтральное положения, когда кнопки не нажаты. |
Dead | Размер аналоговой мертвой зоны. Все значения аналоговых устройств, попадающие в этот диапазон, считаются нейтральными. |
Sensitivity | Скорость в единицах в секунду, с которой ось движется к заданному значению. Только для цифровых устройств. |
Snap | Если включено, значение оси будет сбрасываться в ноль при нажатии кнопки в противоположном направлении. |
Invert | Если включено, Negative Buttons будут выдавать положительные значения, и наоборот. |
Type | Тип ввода, который будет управлять осью. |
Axis | Ось подключенного устройства, которая будет управлять этой осью. |
Joy Num | Подключенный джойстик, который будет управлять этой осью. |
Используйте эти параметры для точной настройки внешнего вида ввода. Также, все они задокументированы во всплывающих подсказках в редакторе.
Вы можете запросить текущее состояние из скрипта так:
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.
Однако изменения осей Mouse и Window Shake показывают, насколько мышь или окно сдвинулись по сравнению с последним кадром. Это значит, что они могут быть больше, чем 1 или меньше, чем –1, когда пользователь быстро двигает мышь.
Можно создавать несколько осей с одним именем. При получении ввода, будет возвращаться ось с наибольшим абсолютным значением. Это позволяет назначить больше одного устройства ввода на одно имя оси. Например, создайте одну ось для ввода с клавиатура и одну ось для ввода с джойстика с одинаковым именем. Если пользователь использует джойстик, ввод будет идти с джойстика, иначе ввод будет идти с клавиатуры. Таким образом, вам не нужно учитывать откуда приходит ввод при написании скриптов.
Чтобы назначить кнопку оси, вам необходимо ввести имя кнопки в свойстве Positive Button или Negative Button в окне Inspector.
Названия кнопок следуют этому соглашению:
Названия, используемые для определения кнопок одни и те же при написании скриптов и в окне Inspector.
value = Input.GetKey ("a");
Note also that the keys are accessible using the KeyCode enum parameter.