using System.Collections;
using UnityEngine;
public class Gravity : MonoBehaviour
{
public CharacterController controller;
float velocityY; // Geschwindigkeit nach unten/oben
public float gravity = -9.81f; // Schwerkraft
public float groundCheckDistance = 0.1f; // Abstand, um zu prüfen, ob Boden da ist
void Update()
{
// Prüfen, ob der Spieler auf dem Boden ist
if (controller.isGrounded)
{
// Wenn auf dem Boden, keine Fallgeschwindigkeit
velocityY = -2f; // kleiner negativer Wert, damit der Controller am Boden bleibt
}
// Schwerkraft anwenden
velocityY += gravity * Time.deltaTime;
// Bewegung nur in Y-Richtung
Vector3 move = new Vector3(0, velocityY, 0);
// Spieler bewegen
controller.Move(move * Time.deltaTime);
if (Input.GetKeyDown(KeyCode.Space) && controller.isGrounded)
{
velocityY = 5f; // Sprungkraft
StartCoroutine(AfterJump());
}
}
private IEnumerator AfterJump()
{
yield return new WaitForSeconds(0.1f);
velocityY = Mathf.Lerp(velocityY, -20f, Time.deltaTime * test); // Nach dem Sprung die Fallgeschwindigkeit erhöhen
}
public float test;
}