unity 新的输入系统input system 使用
1:首先在包管理器里安装 搜索"input system"
2: 创建input acionts

3:生成代码 勾选后点击右小角应用就可以自动生成相关代码

4:代码调用
创建一个自定义脚本
A:在类中创建变量 NewControls 就是上面自动生成的输入控制类的名字
NewControls inputActions;
B:在Awake中初始化inputActions
private void Awake()
{
inputActions = new NewControls();
}C: 创建onEnble 和Ondisablef方法
private void OnEnable()
{
inputActions.Enable();
}
private void OnDisable()
{
inputActions.Disable();
}
D: 实现相关方法
private void OnEnable()
{
inputActions.PlayMove.move.performed += Move_performed;
inputActions.PlayMove.jump.performed += Jump_performed;
inputActions.Enable();
}
private void OnDisable()
{
inputActions.PlayMove.move.performed -= Move_performed;
inputActions.PlayMove.jump.performed -= Jump_performed;
inputActions.Disable();
}
private void Jump_performed(UnityEngine.InputSystem.InputAction.CallbackContext obj)
{
//obj就是传递过来的参数 obj.ReadValueAsButton()
}
private void Move_performed(UnityEngine.InputSystem.InputAction.CallbackContext obj)
{
//这里获得传递过来的参数是一个Vector2类型
pos = obj.ReadValue<Vector2>();
}补充:
Action Type
Value 默认,主要用于状态连续更改的输入,例如鼠标的移动,手柄的遥感。如果有多个设备绑定这个Action,只会发送其中一个设备(最受控制的)的输入 Button 用于每次按下时触发的Action Pass-Through 和Value一样,区别在于如果有多个设备绑定这个Action,会发送所有设备的输入

