序
在最新的Unity版本中,官方推荐用InputSystem取代传统的输入,所以本文主要介绍InputSystem的使用。
前期工作
在最新的Unity版本中已经启用了InputSystem,部分旧版则要自己手动安装并启用


总体介绍
特性 | 旧输入系统(Input Manager) | 新输入系统(Input System Package) |
---|
支持多设备 | 基本(鼠标、键盘、手柄) | ✅ 全面支持(键盘、鼠标、手柄、触控、陀螺仪等) |
多人本地输入(本地多玩家) | ❌ 不支持 | ✅ 内建支持,区分不同玩家的设备 |
输入设备热插拔 | ❌ 不支持 | ✅ 自动识别插拔设备 |
自定义映射/重绑定 | 手动写代码实现 | ✅ 内建支持运行时重绑定 |
输入事件(按下、抬起等) | ❌ 基于轮询 | ✅ 支持事件驱动,响应更及时 |
可视化编辑器支持 | ❌ 配置很原始(硬编码字符串) | ✅ 提供 Input Actions 可视化配置工具 |
模块化架构 | ❌ 单一系统 | ✅ 架构分层、模块化强,适合大型项目 |
支持输入模拟与测试 | ❌ 手动写代码 | ✅ 支持通过代码模拟输入,便于自动化测试 |
移动/控制台平台支持 | ✅ 基础支持 | ✅ 更完整,未来更优先适配 |
省流:通过InputAction,实现按键绑定,并且与实际功能分离

Action Maps
Action Map是许多Actions的集合,每个Map是一个独立的分组,之间互不干扰
Actions
Action中存储着按键绑定,Action可以有许多类型