Advertisement
gomuani

Untitled

Jun 20th, 2025
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.87 KB | Gaming | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class Move2D : MonoBehaviour
  6. {
  7.     public float velocidad = 5f;            // Velocidad de movimiento horizontal
  8.     public float fuerzaSalto = 10f;          // Fuerza del salto
  9.     public Transform chequeoSuelo;          // Objeto para verificar si está en el suelo
  10.     public LayerMask capaSuelo;             // Define qué se considera como suelo
  11.  
  12.     private Rigidbody2D rb;
  13.     private bool enSuelo;
  14.     private float movimiento;
  15.     private bool mirandoDerecha = true;
  16.  
  17.     void Start()
  18.     {
  19.         // Obtener el componente Rigidbody2D al iniciar
  20.         rb = GetComponent<Rigidbody2D>();
  21.     }
  22.  
  23.     void Update()
  24.     {
  25.         // Capturar la entrada horizontal (A/D o Flechas izquierda/derecha)
  26.         movimiento = Input.GetAxisRaw("Horizontal");
  27.  
  28.         // Comprobar si el personaje está tocando el suelo (círculo pequeño en los pies)
  29.         enSuelo = Physics2D.OverlapPoint(chequeoSuelo.position, capaSuelo);
  30.  
  31.         // Si está en el suelo y se presiona la tecla de salto
  32.         if (Input.GetButtonDown("Jump") && enSuelo)
  33.         {
  34.             rb.velocity = new Vector2(rb.velocity.x, fuerzaSalto);
  35.         }
  36.  
  37.         // Voltear el personaje si cambia de dirección
  38.         if (movimiento > 0 && !mirandoDerecha)
  39.             Voltear();
  40.         else if (movimiento < 0 && mirandoDerecha)
  41.             Voltear();
  42.     }
  43.  
  44.     void FixedUpdate()
  45.     {
  46.         // Aplicar movimiento horizontal manteniendo la velocidad vertical actual
  47.         rb.velocity = new Vector2(movimiento * velocidad, rb.velocity.y);
  48.     }
  49.  
  50.     void Voltear()
  51.     {
  52.         // Invertir la escala en X para voltear el sprite
  53.         mirandoDerecha = !mirandoDerecha;
  54.         Vector3 escala = transform.localScale;
  55.         escala.x *= -1;
  56.         transform.localScale = escala;
  57.     }
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement