Что это: KeyInputCompat — статический адаптер для чтения клавиатуры через старую Input Manager и новую Input System без изменения вызывающего кода. Файл: Scripts/Tools/Input/KeyInputCompat.cs, пространство имён: Neo.Tools.
Как использовать:
- Вызывайте
KeyInputCompat.GetKeyDown,GetKeyUp,GetKeyвместо прямогоInput.GetKey*, если компонент должен работать с разными backend-вариантами Unity input. - Никакой дополнительной настройки компонента не требуется.
- Если legacy input недоступен, класс автоматически попробует прочитать состояние через
OptionalInputSystemAdapter.
| Метод | Описание |
|---|---|
GetKeyDown(KeyCode keyCode) |
Нажатие клавиши в текущем кадре. |
GetKeyUp(KeyCode keyCode) |
Отпускание клавиши в текущем кадре. |
GetKey(KeyCode keyCode) |
Удержание клавиши. |
Алгоритм такой:
- Сначала вызывается обычный
Input.GetKey*. - Если Unity выбрасывает
InvalidOperationException, класс считает, что legacy input отключён. - Тогда чтение переходит в
OptionalInputSystemAdapter, который пытается получить состояние клавиши через новый Input System.
Это позволяет использовать один и тот же код в проектах с:
- только
Input Manager; - только
Input System; - гибридной конфигурацией.
Используйте KeyInputCompat, если:
- вы пишете reusable runtime-компонент;
- не хотите жёстко привязывать пакет к одному input backend;
- компонент должен пережить разные Player Settings у конечного пользователя пакета.
- Поддержка зависит от того, может ли
OptionalInputSystemAdapterсопоставитьKeyCodeс Input System key property. - Для сложных input action map сценариев лучше использовать полноценный Input System API, а не этот совместимый слой.