Unity输入系统

LiFasT
LiFasT
Published on 2025-06-29 / 4 Visits
0
0

在最新的Unity版本中,官方推荐用InputSystem取代传统的输入,所以本文主要介绍InputSystem的使用。

前期工作

在最新的Unity版本中已经启用了InputSystem,部分旧版则要自己手动安装并启用

  • 安装

  • 启用

总体介绍

特性

旧输入系统(Input Manager)

新输入系统(Input System Package)

支持多设备

基本(鼠标、键盘、手柄)

✅ 全面支持(键盘、鼠标、手柄、触控、陀螺仪等)

多人本地输入(本地多玩家)

❌ 不支持

✅ 内建支持,区分不同玩家的设备

输入设备热插拔

❌ 不支持

✅ 自动识别插拔设备

自定义映射/重绑定

手动写代码实现

✅ 内建支持运行时重绑定

输入事件(按下、抬起等)

❌ 基于轮询

✅ 支持事件驱动,响应更及时

可视化编辑器支持

❌ 配置很原始(硬编码字符串)

✅ 提供 Input Actions 可视化配置工具

模块化架构

❌ 单一系统

✅ 架构分层、模块化强,适合大型项目

支持输入模拟与测试

❌ 手动写代码

✅ 支持通过代码模拟输入,便于自动化测试

移动/控制台平台支持

✅ 基础支持

✅ 更完整,未来更优先适配

省流:通过InputAction,实现按键绑定,并且与实际功能分离

Input Action

Action Maps

Action Map是许多Actions的集合,每个Map是一个独立的分组,之间互不干扰

Actions

Action中存储着按键绑定,Action可以有许多类型


Comment