Double Jumping Character Controller
Here I will demonstrate how to add a double jumping mechanic to our character controller.
Here is our jump code before we add the double jump capability:
Basically the character can only jump if they are on the ground. We want to extend the above code to allow the player to also jump one more time if they are in the air.
In order to add a double jump we modify the code like so:
A couple things to point out. First the player can only do the double jump if they are already in the air. So first we check to see if the player is grounded. If they push the space bar while grounded we will set the y component of their velocity to jump height and we will enable the double jump ability with _canDoubleJump = true;
If the player is already in the air and has not yet double jumped then they can double jump if they press the space bar. To accomplish this we add the jump height to the y component of velocity, which will propel the player upward for the double jump. We then set _canDoubleJump to false as we only want one double jump at a time. It will be set back to true when the player lands and then performs another jump.
Here is the final product after making the code additions: