Advertisement
GigaOrts

Movement_Jump

Jun 29th, 2025
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.15 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. public class Movement : MonoBehaviour
  4. {
  5.     public float moveSpeed = 5f;
  6.     public float jumpForce = 10f;
  7.     private Rigidbody2D rb;
  8.  
  9.     private bool isGrounded;
  10.     private bool doubleJump;
  11.    
  12.     void Start()
  13.     {
  14.         rb = GetComponent<Rigidbody2D>();
  15.     }
  16.  
  17.     void Update()
  18.     {
  19.         float moveInput = Input.GetAxis("Horizontal");
  20.         rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
  21.  
  22.         bool canJump = isGrounded;
  23.         bool canDoubleJump = isGrounded == false && doubleJump;
  24.  
  25.         if (Input.GetKeyDown(KeyCode.Space))
  26.         {
  27.             if (canJump)
  28.             {
  29.                 Jump();
  30.             }
  31.             else if (canDoubleJump)
  32.             {
  33.                 Jump();
  34.                 doubleJump = false;
  35.             }
  36.         }
  37.     }
  38.  
  39.     private void Jump()
  40.     {
  41.         rb.velocity = new Vector2(rb.velocity.x, jumpForce);
  42.     }
  43.  
  44.     void OnCollisionEnter2D(Collision2D collision)
  45.     {
  46.         isGrounded = true;
  47.         doubleJump = true;
  48.     }
  49.  
  50.     void OnCollisionExit2D(Collision2D collision)
  51.     {
  52.         isGrounded = false;
  53.     }
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement