I wish this wasn't a sealed class. Inside it, lots of values are hard-coded (like the check for jumping). I wanted to get a simple CanJump() method but hit a brick wall.
I wanted to apply impulsetoRigidbody on a Player Controller. I was tweaking and about to do 10 backflips. So if you ever get in that situation remember about PreventGrounding() and apply shitton of force on that sausage, boy is heavy.