Jumping script WONT WORK!!!!!!!! for 2D

i searched and searched for jumping scripts put there are all the same but mine has no errors it just wont work(since it's a 2D game do i need the ", 0, input.getaxis (vertical)?")

Script:

var jumpSpeed = 8.0;

var gravity = 20.0;

private var moveDirection = Vector3.zero;

private var grounded : boolean = false;

function FixedUpdate() {

if (grounded) {

// We are grounded, so recalculate movedirection directly from axes

    moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, 

Input.GetAxis("Vertical"));

    moveDirection = transform.TransformDirection(moveDirection);
    moveDirection *= speed;

    if (Input.GetButton ("Jump")) {
        moveDirection.y = jumpSpeed;
    }
}

// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;

Nowhere in your script is the calculated moveDirection actually used. Make sure you have a call to the CharacterController.Move()

Taking directly from the CharacterController.Move() script reference page:

var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;

private var moveDirection = Vector3.zero;

function FixedUpdate() {
    var controller : CharacterController = GetComponent(CharacterController);
    if (controller.isGrounded) {
        // We are grounded, so recalculate
        // move direction directly from axes
        moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
                                Input.GetAxis("Vertical"));
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;

        if (Input.GetButton ("Jump")) {
            moveDirection.y = jumpSpeed;
        }
    }

    // Apply gravity
    moveDirection.y -= gravity * Time.deltaTime;

    // Move the controller
    controller.Move(moveDirection * Time.deltaTime);
}

Also make sure that the script is attached to a GameObject with a CharacterController component.