how to jump with 2d?

i read tutorials and searched but nothing works. could someone tell me how make my character jump, please! Thanks!


var jumpSpeed = 8.0;

var gravity = 20.0;

private var moveDirection =;

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,


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);


Your question lacks detail. Right now there is nothing to do because I don't know how your script is made. Specificity is your friend, even more if you show that you're working hard and not waiting for someone to hand to you a ready to work code.

The 2D tutorial works.

What I suggest is to open the tutorial's demo project and look at the character controller script. See how the jumping works(variables and functions) and try to add it to your own script. Once you've done that, if it still doesn't work, then show us a little of your script and enough detail so that we can help you find what is missing.

if you have a hard time understanding this, look for beginners's tutorials for scripting. They will greatly help, as well as the unity scripting reference.

I too am new to Unity and the first thing I do is to read all that I can see and find relevant. Look through the questions, there are surely a few talking about jumping. And also, it would help to look at how the questions are formulated. There are some questions that will never get an answer because of what I said above.

Good Luck