Unity поддерживает ввод с клавиатуры, джойстика и гейпада.
Виртуальные оси и кнопки могут быть созданны в Input Manager, и конечные пользователи смогут настраивать ввод с клавиатуры на экране конфигурационного диалогового окна.
Ссылка https://docs.unity3d.com/ru/2018.4/Manual/ConventionalGameInput.html
Вы можете настроить джойстики, геймпады, клавиатуру и мышь, затем обращаться к ним через один простой скриптовый интерфейс.
Virtual Axes
Из скриптов все виртуальные оси доступны по их именам.
Каждый проект при создании содержит следующие оси ввода по умолчанию:
- Horizontal и Vertical привязаны к w, a, s, d и клавишам направления.
- Fire1, Fire2, Fire3 привязаны к клавишам Control, Option (Alt) и Command соответственно.
- Mouse X и Mouse Y привязаны к перемещениям мыши.
- Window Shake X и Window Shake Y привязаны к перемещению окна.
Добавление новых осей ввода
Если вы желаете добавить новые виртуальные оси, перейдите в меню
. Здесь вы можете также изменить настройки каждой оси.
Вы привязываете каждую ось к двум кнопкам на джойстике, мыши или клавиатуре.
Свойство: | Функция: |
---|---|
Name | Имя, используемое для проверки этой оси из скрипта. |
Descriptive Name | Имя положительного значения, отображаемое на вкладке Input диалогового окна | в автономных сборках.
Descriptive Negative Name | Имя отрицательного значения, отображаемое на вкладке Input диалогового окна | в автономных сборках.
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");
Это в случае ввода с джойстика и клавиатуры.
Однако изменения осей Mouse и Window Shake показывают, насколько мышь или окно сдвинулись по сравнению с последним кадром. Это значит, что они могут быть больше, чем 1 или меньше, чем –1, когда пользователь быстро двигает мышь.
Можно создавать несколько осей с одним именем. При получении ввода, будет возвращаться ось с наибольшим абсолютным значением. Это позволяет назначить больше одного устройства ввода на одно имя оси. Например, создайте одну ось для ввода с клавиатура и одну ось для ввода с джойстика с одинаковым именем. Если пользователь использует джойстик, ввод будет идти с джойстика, иначе ввод будет идти с клавиатуры. Таким образом, вам не нужно учитывать откуда приходит ввод при написании скриптов.
Названия кнопок
Чтобы назначить кнопку оси, вам необходимо ввести имя кнопки в свойстве Positive Button или Negative Button в окне Inspector.
Keys (Клавиши)
Названия кнопок следуют этому соглашению:
- Обычные клавиши“: ”a“, ”b“, ”c" …
- Цифровые клавиши: “1”, “2”, “3”, …
- Клавиши стрелок: “up”, “down”, “left”, “right”
- Клавиши цифровой клавиатуры: “[1]”, “[2]”, “[3]”, “[+]”, “[equals]”
- Клавиши модификаторов: “right shift”, “left shift”, “right ctrl”, “left ctrl”, “right alt”, “left alt”, “right cmd”, “left cmd”
- Клавиши мыши: “mouse 0”, “mouse 1”, “mouse 2”, …
- Кнопки джойстика (от любого джойстика): “joystick button 0”, “joystick button 1”, “joystick button 2”, …
- Кнопки джойстика (от заданного джойстика): “joystick 1 button 0”, “joystick 1 button 1”, “joystick 2 button 0”, …
- Специальные клавиши: “backspace”, “tab”, “return”, “escape”, “space”, “delete”, “enter”, “insert”, “home”, “end”, “page up”, “page down”
- Функциональные клавиши: “f1”, “f2”, “f3”, …
Названия, используемые для определения кнопок одни и те же при написании скриптов и в окне Inspector.
value = Input.GetKey ("a");
Ось может иметь значение от –1 до 1. На нейтральное положение указывает 0. Note also that the keys are accessible using the KeyCode enum parameter.
Комментариев нет:
Отправить комментарий