Jump button buffer followed by coyote jump examples. Button pressed graphic to see when button was pressed compared to when the action was completed.
These two techniques are two sides of the same coin. For the coyote jump, the player's grounded state remains true for a few frames after they are no longer on the ground. As for the button buffering, the player's button input remains true for a few frames after pressing the button.
These techniques both serve to forgive the player for not being frame perfect with their input. This means making that timed jump feel perfect as well as not missing any jumps when hitting the jump button right before hitting the ground.
Debug view of the floating capsule.
This technique is used to keep the player's capsule collider floating slightly above the ground.
This allows the player to easily traverse different terrains, such as slopes, rugged paths, and stairs without their capsule collider interacting with the terrain which would lead to undesirable results.
Portion of the State Machine script.
This technique allows the different player states to be easily separated and given specific rules for when the state should be called.
This makes it so that all of the states and accompanying logic for the player is only called when needed. This also makes adding new states a relatively quick process as every state is well separated.