Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Move2D: MonoBehaviour
- {
- public float velocidad = 5f; // Velocidad de movimiento horizontal
- public float fuerzaSalto = 7f; // Fuerza con la que el personaje salta
- public Transform chequeoSuelo; // Objeto que verifica si el personaje está en el suelo
- public LayerMask capaSuelo; // Define qué es considerado suelo
- private Rigidbody2D rb;
- private Animator animator;
- private bool enSuelo;
- private float radioChequeo = 0.2f; // Tamaño del área que detecta el suelo
- private float movimiento;
- private bool mirandoDerecha = true;
- void Start()
- {
- rb = GetComponent<Rigidbody2D>(); // Obtener el Rigidbody2D
- animator = GetComponent<Animator>(); // Obtener el Animator si hay animaciones
- }
- void Update()
- {
- // Obtener entrada del jugador en el eje horizontal
- movimiento = Input.GetAxisRaw("Horizontal");
- // Verificar si el personaje está tocando el suelo
- enSuelo = Physics2D.OverlapCircle(chequeoSuelo.position, radioChequeo, capaSuelo);
- // Saltar si el jugador presiona la tecla y está en el suelo
- if (Input.GetButtonDown("Jump") && enSuelo)
- {
- rb.velocity = new Vector2(rb.velocity.x, fuerzaSalto);
- }
- // Voltear el personaje según la dirección
- if (movimiento > 0 && !mirandoDerecha)
- Voltear();
- else if (movimiento < 0 && mirandoDerecha)
- Voltear();
- // Opcional: actualizar animaciones si usas Animator
- if (animator != null)
- {
- animator.SetFloat("Velocidad", Mathf.Abs(movimiento));
- animator.SetBool("enSuelo", enSuelo);
- }
- }
- void FixedUpdate()
- {
- // Aplicar movimiento horizontal
- rb.velocity = new Vector2(movimiento * velocidad, rb.velocity.y);
- }
- void Voltear()
- {
- // Cambia la dirección del personaje invirtiendo su escala en X
- mirandoDerecha = !mirandoDerecha;
- Vector3 escala = transform.localScale;
- escala.x *= -1;
- transform.localScale = escala;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement