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

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

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.