Unity有两套输入系统,旧的叫Input Manager,新的叫Input System。旧的在Project Settings-Input Manager里配置。
新的以PlayerInput组件和InputActions资源文件的方式使用。
Input System
有几个playerInput组件意味着有几个玩家。如果是单机游戏,场景里应该只有一个playerInput。
实现打开一个菜单时禁用人物的所有动作输入
定义两个ActionMap,打开菜单的Action定义在Player,关闭菜单的Action定义在UI。一般是同一个按键。
在打开菜单的回调方法里修改playerInput组件使用的ActionMap。通过字符串指定。
playerInput.SwitchCurrentActionMap("UI");
关闭菜单的回调方法里再修改playerInput组件使用的ActionMap。
playerInput.SwitchCurrentActionMap("PLayer");