Jump/move Script doesnt work properly

Hey there

Im trying to make a platform 2d game, but im already facing problems. Im having my character with a character controller on, and then im using this script

using UnityEngine;
using System.Collections;

public class PlayerScript : MonoBehaviour {
	public float speed = 6.0F;
	public float jumpSpeed = 8.0F;
	public float gravity = 20.0F;
	private Vector3 moveDirection = Vector3.zero;
	void Update() {
		CharacterController controller = GetComponent<CharacterController>();
		if (controller.isGrounded) {
			moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
			moveDirection = transform.TransformDirection(moveDirection);
			moveDirection *= speed;
			if (Input.GetButton("Jump"))
				moveDirection.y = jumpSpeed;
			
		}
		moveDirection.y -= gravity * Time.deltaTime;
		controller.Move(moveDirection * Time.deltaTime);
	}
}

It is working fine, but when i increase the speed of my character and the pressing jump, i am kinda running very fast. It’s like the jump doesnt work, when i am walking at the same time.
What could that be?

Kind regards
Mads

Bump

I have tried various things but they all have the same issue.

Do you need to use the built in character controller for a 2D patform game?

What type of game is it you are making, scroller / runner or platform like Mario or meat boy?

I dont really know if i am gonna need the character controller, but i am planning to make a rpg game with controls like an old mario game. If you know what i mean :slight_smile:

Bump…