> 文章列表 > Unity InputSystem (一)

Unity InputSystem (一)

Unity InputSystem (一)

什么是InputSystem

InputSystem 是 2019 年 Unity 新推出的插件,输入系统包实现了一个系统来使用任何类型的输入设备来控制你的 Unity 内容。它旨在成为 Unity 的经典输入管理器更强大、更灵活、更可配置的替代品。 新输入系统基于事件,输入设备和动作逻辑互相分离,通过配置映射来处理输入信息。

安装InputSystem

打开Unity项目,Window->Package Manager

在这里插入图片描述

安装后会弹框提示:要求是否禁用之前的 InputManager 如果 Yes 将启用新的 InputSystem
Unity InputSystem (一)

如果希望两者都可以使用在 playerSetting 中选择 Both
Unity InputSystem (一)

InputSystem的配置

两种使用 InputSystem 的方法

直接从输入设备获取输入

直接使用 InputSystem 的方法很简单,系统提供了各种设备对应的管理类和当前实例,

if (keyboard.wKey.wasPressedThisFrame)
{Debug.Log("W键按下");
}
if (keyboard.sKey.wasReleasedThisFrame)
{Debug.Log("S键松开");
}
if (keyboard.aKey.isPressed)
{Debug.Log("A键按住");
}
Debug.Log("按住D键 : " + keyboard.dKey.isPressed);

Unity官方文档给的实例

var gamepad = Gamepad.current;if (gamepad == null)return; // No gamepad connected.if (gamepad.rightTrigger.wasPressedThisFrame)
{// 'Use' code here
}Vector2 move = gamepad.leftStick.ReadValue();//获取左摇杆的输入返回一个v2类型的变量
// 'Move' code here

如果考虑多个同类型的输入设备,比如多个手柄或者多个键盘,那么应使用InputSystem.devices列表来获取所有可用设备并从中找到自己所需的那个。