Ich habe dieses script geschrieben und wollte damit bewirken, das mein Spieler sich bewegen und springen kann:
public class PlayerMovementScript : MonoBehaviour
{
[SerializeField] private float Speed = 4;
[SerializeField] private float JumpPower = 8;
Rigidbody2D rigidbody;
BoxCollider2D boxCollider;
private void Start()
{
rigidbody = GetComponent<Rigidbody2D>();
boxCollider = GetComponent<BoxCollider2D>();
}
private void Update()
{
float horizontal = Input.GetAxisRaw("Horizontal") * Speed;
Vector2 movement = new Vector2(horizontal, rigidbody.velocity.y);
if (Input.GetButtonDown("Jump"))
{
rigidbody.velocity = new Vector2(rigidbody.velocity.x, JumpPower);
}
rigidbody.velocity = movement;
}
}
Doch wenn ich es starte, kann ich nicht springen wenn ich Leertaste drücke.
Aber wenn ich die abfrage mit Input.GetButtonDown so schreibe:
if (Input.GetButtonDown("Jump"))
{
Debug.Log("Hallo")
rigidbody.velocity = new Vector2(rigidbody.velocity.x, JumpPower);
}
dann erscheint noch das "Hallo" in der Console