The new Input System doesn't read input

Help please, the new input system doesn’t react when i press keys

using UnityEngine;

public class Player : MonoBehaviour, IDamageable
{
    public static Player Instance;

    [SerializeField] private float playerSpeed = 2f;
    [SerializeField] private float playerJumpForce = 2f;
    [SerializeField] private Transform groundCheckPoint;
    [SerializeField] private float groundCheckDistance;
    [SerializeField] private LayerMask groundCheckLayerMask;
    [SerializeField] private float playerHP;
    [SerializeField] private float playerDamage;

    private InputActions inputActions;
    private Rigidbody2D playerRigidbody;
    private float playerSpeedBasicMultipier = 100f;

    private void Awake()
    {
        Instance = this;

        inputActions = new InputActions();
        playerRigidbody = GetComponent<Rigidbody2D>();

    }

    private void Start()
    {
        inputActions.Player.Jump.performed += Jump_performed;
        inputActions.Player.MeleeAttack.performed += MeleeAttack_performed;
    }

    private void MeleeAttack_performed(UnityEngine.InputSystem.InputAction.CallbackContext obj)
    {
        //Collider2D[] attackHittedArray = Physics2D.BoxCastAll(gameObject)
    }

    private void Update()
    {
        MovePlayer();
    }

    private void Jump_performed(UnityEngine.InputSystem.InputAction.CallbackContext obj)
    {
        Debug.Log("jump is called");
        if (IsGrounded())
        {
            playerRigidbody.AddForce(Vector2.up * playerJumpForce, ForceMode2D.Impulse);
        }
    }

    private void MovePlayer()
    {
        playerRigidbody.velocity = new Vector2 (GetInputVectorNormalized().x * playerSpeed * Time.deltaTime * playerSpeedBasicMultipier, playerRigidbody.velocity.y);

    }

    private Vector2 GetInputVectorNormalized()
    {
        Debug.Log(inputActions.Player.Move.ReadValue<Vector2>().normalized);
        return inputActions.Player.Move.ReadValue<Vector2>().normalized;
       
    }

    private bool IsGrounded()
    {
        return Physics2D.Raycast(groundCheckPoint.position, Vector2.left, groundCheckDistance, groundCheckLayerMask);
    }

    private void OnDrawGizmos()
    {
        Gizmos.color = Color.green;
        Gizmos.DrawRay(groundCheckPoint.position, Vector2.left * groundCheckDistance);
    }

    public void TakeDamage(float damage)
    {
        playerHP -= damage;
    }

    public void DealDamage(Collider2D collision)
    {
        if (collision.gameObject.TryGetComponent<IDamageable>(out IDamageable damageable))
        {
            damageable.TakeDamage(playerDamage);
        }
    }

    // CLEAR INPUT ACTIONS LIKE IN CODE MONKEY TUTORIAL
}

You need to .Enable() your InputActions.

Thank you very much!

Would appreciate if you could describe why it didn’t work, cause i didn’t understand after reading API

It’s explained in the docs: Actions | Input System | 1.12.0

For actions defined elsewhere, such as in an Action Asset not assigned as project-wide, or defined your own code, they begin in a disabled state, and you must enable them before they will respond to input.

1 Like