Creación de un juego de plataformas 2D sencillo en Unity

En este tutorial, crearemos un juego de plataformas 2D básico en Unity. Esto implicará crear un personaje jugador que pueda moverse, saltar e interactuar con plataformas. También agregaremos algunos elementos básicos del juego, como obstáculos y objetos coleccionables.

1. Configuración del proyecto

Comencemos configurando un nuevo proyecto Unity 2D:

  1. Abra Unity y cree un nuevo proyecto 2D.
  2. Vaya a Archivo > Nueva escena y seleccione Modo 2D.
  3. Guarde la escena como MainScene.

2. Creando el personaje del jugador

Primero crearemos un personaje de jugador simple usando un sprite y agregaremos funcionalidad de movimiento:

  1. Haga clic con el botón derecho en la ventana Jerarquía y seleccione Crear objeto vacío. Nombre este objeto Jugador.
  2. Agregue un componente Sprite Renderer al objeto Player haciendo clic en Agregar componente en el Inspector.
  3. Selecciona un sprite para usar como personaje, ya sea creando el tuyo propio o importando un recurso 2D desde Unity Asset Store.
  4. Agregue un Rigidbody2D y un BoxCollider2D al objeto Player para la física y la detección de colisiones.

3. Cómo escribir el guión de movimiento del jugador

Ahora, escribamos un script que permita al jugador moverse y saltar. Siga estos pasos:

  1. Haz clic derecho en la ventana Proyecto y selecciona Crear > Script de C#. Asígnale el nombre PlayerController.
  2. Adjunte este script al objeto Reproductor arrastrándolo desde la ventana Proyecto hasta el Reproductor en la Jerarquía.

Reemplace el contenido del script con lo siguiente:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float jumpForce = 7f;
    private Rigidbody2D rb;
    private bool isGrounded = true;

    void Start()
    {
        rb = GetComponent();
    }

    void Update()
    {
        // Player movement
        float moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);

        // Jumping
        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
            isGrounded = false;
        }
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        // Check if player is touching the ground
        if (collision.collider.CompareTag("Ground"))
        {
            isGrounded = true;
        }
    }
}

4. Creación de plataformas y entornos

Ahora crearemos plataformas para que el jugador salte:

  1. En la Jerarquía, haga clic derecho y seleccione Crear vacío, luego nómbrelo Plataforma.
  2. Agregue un BoxCollider2D y un Sprite Renderer a la plataforma.
  3. Seleccione un sprite para la plataforma (por ejemplo, un rectángulo plano).
  4. Duplica la plataforma presionando Ctrl+D (o Cmd+D en Mac) y coloca las copias para crear un nivel.
  5. Etiqueta estos objetos como Tierra en el Inspector para la lógica de salto del jugador.

5. Añadiendo obstáculos

Para hacer el juego más desafiante, agreguemos algunos obstáculos:

  • Crea otro GameObject vacío y nómbralo Obstacle.
  • Agregue un BoxCollider2D y un Sprite Renderer a este objeto.
  • Elige un sprite para el obstáculo (por ejemplo, un pico o un peligro).
  • En el método OnCollisionEnter2D del jugador, puedes detectar colisiones con obstáculos y reiniciar el juego o deducir salud.

6. Añadiendo objetos coleccionables

También podemos añadir coleccionables, como monedas o potenciadores:

  • Crea otro GameObject vacío y nómbralo Collectible.
  • Agregue un CircleCollider2D (configúrelo como un disparador) y un Sprite Renderer para representar el coleccionable.
  • Escriba un script simple para detectar cuándo el jugador recoge un objeto:
using UnityEngine;

public class Collectible : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            // Add points or other effects here
            Destroy(gameObject); // Remove the collectible from the scene
        }
    }
}

7. Probando y ajustando el juego

Ahora que ya tienes la mecánica básica, puedes probar el juego pulsando el botón Jugar. Intenta ajustar lo siguiente:

  • Modifique los valores moveSpeed y jumpForce para ajustar la velocidad con la que el jugador se mueve y salta.
  • Duplica plataformas y obstáculos para crear diferentes niveles.
  • Añade elementos de fondo o decoraciones para que el juego sea visualmente atractivo.

8. Mejorando el juego de plataformas

Para llevar tu juego de plataformas al siguiente nivel, considera agregar:

  • Animaciones para el jugador, como animaciones de caminar y saltar.
  • Efectos de sonido para saltar, recoger objetos y golpear obstáculos.
  • Una cámara que sigue los movimientos del jugador para una visión más dinámica del juego.

Conclusión

Con esta sencilla configuración de plataforma en 2D, ahora tienes una estructura de juego básica que se puede ampliar con más funciones, niveles y mejoras. Experimenta con diferentes mecánicas y crea tu propio juego de plataformas único.