- Home /
Player Jump via Transform on Input Space
Hey all,
So I'm trying to get a simple Jump button working. I have two variables, a gravity and a jumpHeight. And an isGrounded bool.
The problem is that when I press Spacebar, the player does not come back down. He transforms up (I'm still working on smoothness) instantly 4 units, but stays there.
public float forwardSpeed = 10.0f;
public float backwardSpeed = -4.0f;
public float sidewaysSpeed = 5.0f;
/*public float turningSpeed, unsure, but you can
handle left and right with positive and negative*/
public bool isGrounded = true;
public float jumpHeight = 4.0f;
public float airAcceleration;
public float gravity = -2.0f;
void Update () {
Vector3 forwardDirection = new Vector3(0,0,forwardSpeed * Time.deltaTime);
Vector3 backwardDirection = new Vector3(0,0,backwardSpeed * Time.deltaTime);
Vector3 sidewaysDirection = new Vector3(sidewaysSpeed * Time.deltaTime,0,0);
Vector3 jumpDirection = new Vector3(0,jumpHeight,0);
Vector3 downForce = new Vector3(0,gravity,0);
//Player Movement Input
if(Input.GetKey(KeyCode.W)){
transform.Translate(forwardDirection);
}
if(Input.GetKey(KeyCode.S)){
transform.Translate(backwardDirection);
}
if(Input.GetKey(KeyCode.A)){
transform.Translate(-sidewaysDirection);
}
if(Input.GetKey(KeyCode.D)){
transform.Translate(sidewaysDirection);
}
if(Input.GetKeyDown(KeyCode.Space)){
transform.Translate(jumpDirection);
isGrounded = false;
}
//End of Player Movement Input
//Gravity
if(isGrounded == false)
{
transform.Translate(downForce * Time.deltaTime);
isGrounded = true;
}
}
Answer by Vonni · Dec 31, 2013 at 06:12 AM
Hey there ninja
isGrounded = true;
right after you start to translate it downwards is your problem
transform.Translate(downForce * Time.deltaTime); <-- only executes 1 frame per jump which results in like a 0.003 movement downwards.
Why are you moving a character like this by the way. This is usually not how you would control a character
Answer by Ethaninja · Dec 31, 2013 at 07:32 AM
Hey Vonni, thanks!
I'm controlling the character this way because I want strafing speed and backwards speed to be different that forward speed, and I am unsure of how else to do that haha.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Help In Making a SphereCast for 3D Tire! Working RayCast Script included! 0 Answers
I need help with animations. 0 Answers
2D car brakes help??? 1 Answer
Why doesn't this do anything? 1 Answer