Ein Treffpunkt für C#-Programmierer
Anonymous
C# 2d Platformer -Bewegungscode
Post
by Anonymous » 03 Apr 2025, 06:10
Dieser Code springt immer wieder, obwohl er nicht auf dem Boden ist, wie Sie dies stoppen (mit Einheit).
Code: Select all
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour
{
//Movement
public float speed;
public float jump;
float moveVelocity;
//Grounded Vars
bool grounded = true;
void Update ()
{
//Jumping
if (Input.GetKeyDown (KeyCode.Space) || Input.GetKeyDown (KeyCode.UpArrow) || Input.GetKeyDown (KeyCode.Z) || Input.GetKeyDown (KeyCode.W))
{
if(grounded)
{
GetComponent ().velocity = new Vector2 (GetComponent ().velocity.x, jump);
}
}
moveVelocity = 0;
//Left Right Movement
if (Input.GetKey (KeyCode.LeftArrow) || Input.GetKey (KeyCode.A))
{
moveVelocity = -speed;
}
if (Input.GetKey (KeyCode.RightArrow) || Input.GetKey (KeyCode.D))
{
moveVelocity = speed;
}
GetComponent ().velocity = new Vector2 (moveVelocity, GetComponent ().velocity.y);
}
//Check if Grounded
void OnTriggerEnter2D()
{
grounded = true;
}
void OnTriggerExit2D()
{
grounded = false;
}
}
1743653410
Anonymous
Dieser Code springt immer wieder, obwohl er nicht auf dem Boden ist, wie Sie dies stoppen (mit Einheit).[code]using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { //Movement public float speed; public float jump; float moveVelocity; //Grounded Vars bool grounded = true; void Update () { //Jumping if (Input.GetKeyDown (KeyCode.Space) || Input.GetKeyDown (KeyCode.UpArrow) || Input.GetKeyDown (KeyCode.Z) || Input.GetKeyDown (KeyCode.W)) { if(grounded) { GetComponent ().velocity = new Vector2 (GetComponent ().velocity.x, jump); } } moveVelocity = 0; //Left Right Movement if (Input.GetKey (KeyCode.LeftArrow) || Input.GetKey (KeyCode.A)) { moveVelocity = -speed; } if (Input.GetKey (KeyCode.RightArrow) || Input.GetKey (KeyCode.D)) { moveVelocity = speed; } GetComponent ().velocity = new Vector2 (moveVelocity, GetComponent ().velocity.y); } //Check if Grounded void OnTriggerEnter2D() { grounded = true; } void OnTriggerExit2D() { grounded = false; } } [/code]