2D Unity: Wieso kann meine Figur unendlich hoch springen?
Ich habe heute mit dem Programmieren lernen angefangen, aber ich habe ein Problem. Und zwar kann ich mit der Figur unendlich hochspringen. Kann mir jemand helfen?
Hier der Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
private Rigidbody2D rb;
private SpriteRenderer sprite;
private Animator anim;
private float dirX = 0f;
// Start is called before the first frame update
private void Start()
{
rb = GetComponent<Rigidbody2D>();
sprite = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
}
// Update is called once per frame
private void Update()
{
dirX = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(dirX * 7f, rb.velocity.y);
if (Input.GetButtonDown("Jump"))
{
rb.velocity = new Vector2(rb.velocity.x, 14f);
}
UpdateAnimationUpdate();
}
private void UpdateAnimationUpdate()
{
if (dirX > 0f)
{
anim.SetBool("running", true);
sprite.flipX = false;
}
else if (dirX < 0f)
{
anim.SetBool("running", true);
sprite.flipX = true;
}
else
{
anim.SetBool("running", false);
}
}
}
1 Antwort
Ich vermute mit "unendlich hoch springen" meinst Du, dass der Charakter nach oben steigt, wenn Du die Springen Taste gedrückt hälst?
Das liegt daran, dass Du nur die Springen Taste abfragst, aber nicht die Position des Charakters.
Dein Charakter soll ja nur springen können, wenn er am Boden ist und nicht etwa in der Luft.
Das musst Du zusätzlich abfragen.