Menu
CoddyTech

Две системы ввода

Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 43 из 56.

В Unity есть два способа считывать ввод с клавиатуры и мыши. Первый — тот, который вы использовали до сих пор, — это Input Manager: класс Input с методами GetKey, GetAxis и GetButtonDown, а также оси и кнопки, названные в Project Settings > Input Manager. Более новый вариант — это пакет Input System (com.unity.inputsystem). Его скрипты начинаются с using UnityEngine.InputSystem;, а устройства в нём представлены объектами, например Keyboard.current и Mouse.current, и действиями (actions): именованными действиями игрока, такими как Move и Jump, каждое из которых привязано к клавишам, стикам и кнопкам.

Какой вариант использует проект, задаётся настройкой Player: Edit > Project Settings > Player > Other Settings > Active Input Handling. Доступны три варианта: Input Manager (Old), Input System Package (New) и Both. Новый проект Unity 6 по умолчанию использует Input System Package (New), и в нём каждый вызов класса Input вызывает InvalidOperationException с сообщением о том, что вы считываете ввод через UnityEngine.Input, хотя проект использует пакет Input System. Поэтому в предыдущих уроках вам предлагалось выбрать Both. Чтобы изменить эту настройку, нужно перезапустить редактор, что Unity предложит сделать.

В Unity 6 по умолчанию используется новая система, потому что один API работает с клавиатурами, мышами, геймпадами, сенсорными экранами и XR-контроллерами, а действия позволяют не указывать клавиши в коде: скрипт считывает действие Jump, и одна и та же строка кода работает для клавиши Space, кнопки A на геймпаде или экранной кнопки телефона, а также для игрока, который переназначил клавишу. Старый Input Manager остаётся для старых проектов. Окно игры Coddy работает как режим Both, поэтому клавиши, щелчки и панель телефона (стрелки и Jump) доступны обеим системам. В оставшейся части этой главы используется Input System.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Создание настоящих игр