Moving faster will decrease jump time

Hello everybody.

I have a Walk/Jump Script which allows me to jump (and also double jump) and to walk/run.

The problem is, that when I run and jump at the same time, the jump ends in a millisecond without reaching the full height.

I cant find the problem. Could need help here :slight_smile: thanks!

Thats the code:

@script RequireComponent(CharacterController)

// Steueroptionen für den Charakter.
// Laufen/Springen/Gleiten/Gravity

private var gehGeschwindigkeit : float = 13.0;
private var laufGeschwindigkeit : float = 200.0;
private var sprungGeschwindigkeit : float = 8.0;
private var drehGeschwindigkeit : float = 60.0;
private var schwerkraft : float = 20.0;
private var doppelSprung : boolean = true;

private var bewegungsRichtung : Vector3 = Vector3.zero;
private var vertikaleGeschwindigkeit : float = 0; //Vertikale Geschwindigkeit für das Springen

function Update () {
	var characterController : CharacterController = GetComponent(CharacterController);
	
	//Bewegungsrichtung
	var drehen: float = Input.GetAxis("Horizontal");
	transform.Rotate(0, drehen * drehGeschwindigkeit * Time.deltaTime, 0);
	bewegungsRichtung = Vector3(0, 0, Input.GetAxis("Vertikal"));
	bewegungsRichtung = transform.TransformDirection(bewegungsRichtung);
	
	//Laufen aktiv
	if (Input.GetButton ("Laufen")){bewegungsRichtung.z *= laufGeschwindigkeit;}
	//Laufen nicht aktiv
	else {bewegungsRichtung *= gehGeschwindigkeit;}
	
	//Springen
	if (Input.GetButtonDown ("Springen")) {
		if (characterController.isGrounded){
		doppelSprung = true;
		vertikaleGeschwindigkeit = sprungGeschwindigkeit;}
		//animation.CrossFade("Springen");
	//Doppelsprung
		if (characterController.isGrounded == false && doppelSprung == true){
		doppelSprung = false;
		vertikaleGeschwindigkeit = sprungGeschwindigkeit;}
		//animation.CrossFade("Springen");
		}
		
	
	//Schwerkraft anwenden
	vertikaleGeschwindigkeit -= schwerkraft*Time.deltaTime;
	bewegungsRichtung.y = vertikaleGeschwindigkeit;
	
	//Charakter Bewegen
	characterController.Move(bewegungsRichtung * Time.deltaTime);
}

I could not find a bug in the code, so I tried the code out, and could not reproduce the bug you describe. Moving so fast, it appear that the jump is shorter, but if you select your character controller object and watch the Y value in the inspector, the maximum height was the same running or not running.