Знакомство с пакетом системы ввода

Страница обновлена :
Дата создания страницы :

Среда верификации

Виндоус
  • Windows 11
Редактор Unity
  • 2020.3.25f1

О пакете системы ввода

На заре Unity мы использовали Input Manager в качестве механизма для получения входных данных от пользователей. Однако в условиях диверсификации игровых платформ менеджер ввода устарел. Добавлен новый механизм управления пользовательским вводом: Input Systemu Manager.

По состоянию на 2022 год доступны как новый «Пакет системы ввода», так и «Диспетчер ввода» для совместимости. Если у вас старый проект, вы можете использовать «Диспетчер ввода» как есть, Я думаю, что в будущем он перейдет на новый «пакет системы ввода», поэтому в новом проекте Используйте системный пакет ввода.

В этом разделе описано, как его настроить.

Установка системных пакетов ввода

Начиная с Unity Editor 2020.3.25f1, пакеты Input System управляются как пакеты, которые изначально не установлены. Чтобы установить пакет, выполните следующие действия.

После создания проекта и запуска редактора Unity выберите в меню Window > Package Manager.

Когда появится экран диспетчера пакетов, выберите «Реестр Unity» из пакета.

Если вы прокрутите список вниз слева, там есть «Система ввода», поэтому выберите его и нажмите кнопку «Установить» в правом нижнем углу.

После установки он будет отображаться как установленный, поэтому закройте диалоговое окно.

Если после установки пакета отображается следующее диалоговое окно, нажмите кнопку «Да», чтобы автоматически настроить следующий «Активировать входной системный пакет». В этом случае редактор Unity перезапустится.

This project is using the new input system package but the native platform backends for the new input system are not enabled in the player settngs. This means that no input from native devices will come through.

Do you want to enable the backends? Doing so *RESTART* the editor and will *DISABLE* the old UnityEngine.Input APIs.

Активация входного системного пакета

Поскольку я только что установил пакет, на данный момент у меня активен устаревший менеджер ввода. Переключите его на системный пакет ввода.

Выберите в меню «Правка» > «Параметры проекта».

Когда откроется диалоговое окно «Параметры проекта», выберите «Проигрыватель» в меню слева.

На вкладке, расположенной ниже, выберите ПК, Mac.... Выберите вкладку «Настройки» и разверните «Дополнительные настройки» в группе внизу.

Если вы прокрутите вниз до некоторой степени, вы найдете пункт под названием «Используемая обработка ввода» в категории «Настройки», где вы можете выбрать «Пакет системы ввода (новый)». На данный момент можно активировать и то, и другое, но это сбивает с толку, поэтому в случае с новым проектом лучше использовать только входной системный пакет.

После внесения изменений появится следующее диалоговое окно, поэтому нажмите «Применить», чтобы перезапустить редактор Unity.

Вот и все, все готово!

О проблеме, связанной с использованием пространства имен "UnityEngine.InputSystem" при вводе кода, приводящим к ошибке

Я не ввел код на данный момент, так что это не будет ошибкой, При попытке использовать его при UnityEngine.InputSystem вводе кода (например, Visual Studio) может появиться сообщение об ошибке о том, что пространство имен не существует.

Например, если вы создадите сценарий перед установкой «Input System Package».

Это связано с тем, что в проекте UnityEngine.InputSystem нет ссылки на . Чтобы устранить эту проблему, выполните следующие действия.

Выберите «Правка» > «Настройки» в меню.

Выберите «Внешние инструменты» в меню слева и нажмите кнопку «Повторно создать файлы проекта».

При этом Visual Studio UnityEngine.InputSystem дополняет ссылку.

Кроме того, код не содержит ошибок.

Изменение приема пользовательского ввода в пользовательском интерфейсе на системный пакет ввода

Это поле не имеет значения, если вы не используете пользовательский интерфейс Unity, например поля ввода или выпадающие списки, и его следует игнорировать.

При размещении поля ввода, раскрывающегося списка и т. д. в представлении автоматически создается Canvas и туда помещается объект пользовательского интерфейса. В то же время создается объект под названием «EventSystem». Это объект, который управляет тем, что происходит, когда в пользовательском интерфейсе выполняется какой-либо ввод.

Эта система EventSystem изначально работает со старым менеджером ввода. Если включен только системный пакет ввода, пользовательский интерфейс не будет работать должным образом, поэтому необходимо перейти на системный пакет ввода.

Чтобы внести изменения, сначала выберите EventSystem.

Затем предупреждение отображается в «Автономном модуле ввода» в инспекторе.

Нажмите кнопку "Заменить на InputSystemUIInputModule", чтобы заменить автономный модуль ввода модулем ввода пользовательского интерфейса системы ввода.

Теперь пользовательский интерфейс вашей игры должен правильно принимать ввод.