- Home /
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;
Answer by · Aug 20, 2010 at 01:57 PM
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.
dude, i copied and pasted it EXACTLY from you, but when i apply it, play the game, and press the "space bar" I don't jump! please reply, thanks!
I started a new project, created a Cylinder GameObject and replaced the CapsuleCollider with a CharacterController, then attached the script to that object. It moves left/right, forward/back, and jumps when I press spacebar. Do you definitely have a CharacterController attached? It won't work without one. What about other move scripts?
Have you read the Unity docs, the scripting reference, followed through any of the tutorials? You really won't get far just copypasting scripts whose workings you don't understand at all and then throwing up your hands when it doesn't work. Understanding scripts well enough to write them yourself isn't easy at all, but it is what must be done, however long it takes you to learn.
Your answer
Follow this Question
Related Questions
Adding a jump feature help? 2 Answers
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
!!!URGENT need help with gravity UGENT!!! 1 Answer
jump script 1 Answer
Gravity and jumping is wierd 1 Answer