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
}