11/02/2019

Unity Традиционный игровой ввод


Unity поддерживает ввод с клавиатуры, джойстика и гейпада.
Виртуальные оси и кнопки могут быть созданны в Input Manager, и конечные пользователи смогут настраивать ввод с клавиатуры на экране конфигурационного диалогового окна.
Ссылка https://docs.unity3d.com/ru/2018.4/Manual/ConventionalGameInput.html


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

Virtual Axes

Из скриптов все виртуальные оси доступны по их именам.
Каждый проект при создании содержит следующие оси ввода по умолчанию:
  • Horizontal и Vertical привязаны к w, a, s, d и клавишам направления.
  • Fire1Fire2Fire3 привязаны к клавишам Control, Option (Alt) и Command соответственно.
  • Mouse X и Mouse Y привязаны к перемещениям мыши.
  • Window Shake X и Window Shake Y привязаны к перемещению окна.

Добавление новых осей ввода

Если вы желаете добавить новые виртуальные оси, перейдите в меню 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"); 
Это в случае ввода с джойстика и клавиатуры.
Однако изменения осей 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.

Комментариев нет:

Отправить комментарий