using Unity.VisualScripting; using UnityEngine; public class player_movement : MonoBehaviour { public float speed = 10; // Start is called once before the first execution of Update after the MonoBehaviour is created [SerializeField] private Rigidbody2D body; private Animator anim; private bool grounded = true; private void Awake(){ //on load load the variables body = GetComponent(); anim = GetComponent(); } private void Update(){ float horizontal = Input.GetAxis("Horizontal"); body.linearVelocity = new Vector2(horizontal * speed, body.linearVelocity.y); if (horizontal > 0.01) { GetComponent().flipX = false; }else if(horizontal < -0.01){ GetComponent().flipX = true; } if(Input.GetKey(KeyCode.Space) && grounded){ jump(); } //run animation if horizontal not 0 anim.SetBool("run", horizontal != 0); anim.SetBool("jump", !grounded); } public void jump(){ body.linearVelocity = new Vector2(body.linearVelocity.x, speed); grounded = false; } private void OnCollisionEnter2D(Collision2D collision){ if(collision.gameObject.tag == "floor"){ grounded = true; } } }