This is why I suggest using the rigidbody method for your 2D characters. Unlike the character controller, the rigidbody will handle all the physics calculations for you such as gravity and momentum. With this component, your character can interact with other rigidbodies in the game.