My jump animation only jump for a sec then stop on the air, I think the problem is my value keep resetting. Pls help I have stuck on this for a month now :'(
You set the IsJumping bool to false in the !IsGrounded() method so this would stop playing the jump animation the moment your player is not touching the ground.
If you have Apply Root Motion checked in your Animator, and your Jump animation contains a root animation, this thread may help you solve the problem:
GravityWeight for Root Motion
Setting GravityWeight value to 1 will pull your root animation down using gravity. Otherwise your object will just float down.