CharacterController is useful for precise character movement without using full Rigidbody physics.

private CharacterController controller;

void Awake()
{
    controller =
        GetComponent<CharacterController>();
}

Move:

controller.Move(
    direction *
    speed *
    Time.deltaTime
);

CharacterController.Move() does not apply gravity automatically.