I am having a problem, as you can see on the gif linked I did the first jump but the seconds just executed the animation, didn’t work at all. I do a raycast do check if it is grounded everytime I get the key down, but using GetKey instead or GetKeyDown fixed this bug, would it be a bad practice to make it getkey so it would make a raycast every update while pressing the key?

GetKeyDown works the first frame its down.
I recommend to keep using the GetKeyDown function but check if the player is grounded outside the GetKeyDown.
void Update()
If(Input.GetKeyDown(//YourButton && isGrounded)
{
Do Jumping Stuff
}
if(!isGrounded)
{
//Check if player is grounded.
if(the player touches the ground)
isGrounded = true
}
You’ll get the idea I hope