private void HandleAirbourneState() { if (currentAerialSession == null) { //Something to handle the sudden disappearance of a floor. E.g. game start, or walking off an edge currentAerialSession = new AerialSession(maxJumpHeight, enforceMaxJumpHeight, maxNumJumps - 1, this, _rigidbody); } currentAerialSession.HandleAerialState(); }
private void OnJumpInput() { if (maxNumJumps <= 0) { //special case for characters we may not wish to have a jump, //or a potential mechanic to disable the opponent's jump ability. return; } if (currentAerialSession == null) { currentAerialSession = new AerialSession(maxJumpHeight, enforceMaxJumpHeight, maxNumJumps, this, _rigidbody); } currentAerialSession.RequestJump(); }
private void OnGroundCollision() { currentAerialSession.Land(); currentAerialSession = null; }