概述
Unity在设计之初并未预见到当下的项目需要支持如此多的平台和设备,旧的Input Manager(即UnityEngine.Input)在这些方面的使用上并不简洁舒适,在多平台以及多设备输入的处理时稍显力不从心。因此,Unity官方推出了新一代输入系统Input System(即UnityEngine.InputSystem)。
Input System实现了一个可以用任何输入设备来控制Unity中的内容的系统。它基于事件系统,将设备输入与动作逻辑分开,通过配置映射输入信息。
安装Input System Package
Input System需要在Unity 2019.4+版本中才能安装。
要安装Input System,你需要在Unity中打开Package Manager,更改左上角选项卡为”“Package: Unity Registry”并在列表中找到“Input System”,点击“Install”即可。
启用新的输入后端
在默认状态下,Unity会启用旧的Input Manager而禁用对Input System的支持,从而保证之前的Unity项目可以正常运行。
当安装了Input System Package之后,Unity会弹出一个对话框,询问是否使用新的输入后端。如果选择“Yes”,则Unity会启用新的输入后端并自动重启编辑器。
你也可以随时在Project Settings里随时更改这项设置,更改后同样会自动重启编辑器。
注意到上图中该项设置为“Both”,这说明旧的Input Manager和新的Input System可以同时生效。
事实上,当Input System生效时,Unity会自动添加一条#define ENABLE_INPUT_SYSTEM = 1
,而Input Manager生效时,会添加#define ENABLE_LEGACY_INPUT_MANAGER = 1
。因为二者可以同时生效,这两个值可以同时为1.