Ввод
Ввод В Unity есть две основные системы обработки ввода: Input System, устанавливаемая через Package Manager, и встроенный класс Input. Input System Input System ориентирована на простоту использования, гибкость и единообразную работу на разных устройствах и платформах. Она заменяет встроенный класс Input. Хотя ввод по-прежнему можно получать непосредственно от устройства, преимущества Input System особенно заметны, когда для управления взаимодействием игрока создаётся набор абстрактных действий. Затем можно создать actionMap - набор привязок и действий. Карта действий связывает эти действия с конкретными устройствами.
Input System доступна через Package Manager.
Чтобы адаптировать управление к новым устройствам, создавайте дополнительные карты действий, а не жёстко привязывайте код к определённым кнопкам устройства, клавишам клавиатуры и т. п. Настройте функции обратного вызова и действия один раз, а затем добавляйте новые сопоставления для поддержки других устройств.
Карты действий также позволяют переключать схему ввода в зависимости от игрового контекста. Например, управление игроком может работать по-разному при вождении, ходьбе и беге. Обязательно ознакомьтесь с кратким руководством по Input System и установите примеры, доступные через Package Manager. Встроенный класс Input В качестве альтернативы используйте встроенный класс Input и Input Manager (Edit > Project Settings > Input Manager) с виртуальными осями
для клавиш, кнопок и других устройств ввода. Он также поддерживает мультитач-ввод и данные акселерометра на мобильных устройствах. Обратите внимание: при включении пакета Input System описанный выше встроенный Input Manager отключается.
Встроенный Input Manager
Ниже перечислены полезные классы и методы для работы с вводом: Input
Читает оси Conventional Game Input и предоставляет доступ к мультитач-вводу и акселерометру на мобильных устройствах.
Input.GetAxis
Возвращает сглаженное значение виртуальной оси axisName: от -1 до 1 для клавиатуры и джойстика; для мыши - текущее смещение, умноженное на чувствительность оси.
Input.GetAxisRaw
Аналог Input.GetAxis без сглаживания.
Input.GetButton
Возвращает true, пока виртуальная кнопка buttonName удерживается.
Input.GetButtonDown
Возвращает true в кадре нажатия виртуальной кнопки buttonName.
Input.GetKey
Возвращает true, пока пользователь удерживает клавишу name.
Input.GetKeyDown
Возвращает true в кадре начала нажатия клавиши name.
Input.touches
Доступный только для чтения список касаний за предыдущий кадр.
Touch
Описывает состояние пальца, касающегося экрана.
KeyCode
Перечисляет варианты клавиш, кнопок мыши и джойстика.
Обзор встроенной системы ввода см. на странице Input Manual.