Crear el personaje para nuestro juego en unity isometrico

Vamos a crear un personaje básico que se mueva por el mapa isométrico y que no pueda salirse del borde.

Índice
  1. 🎯 ¿Qué vamos a hacer en este paso?
  2. ✅ Paso 1: Crear el personaje
  3. ✅ Paso 2: Crear el script de movimiento
  4. ✅ Paso 3: Conectar todo
  5. 🎮 Ahora:

🎯 ¿Qué vamos a hacer en este paso?

  1. Crear un personaje (jugador) con sprite básico.
  2. Escribir el código para que se mueva en vista isométrica.
  3. Limitar el movimiento al tamaño del mapa (por ejemplo: 10x10 tiles).
  4. Ver que se mueva sobre el mapa que ya generaste.

✅ Paso 1: Crear el personaje

  1. Hacé clic derecho en la jerarquía → Create Empty → Renombralo a Jugador.
  2. Con Jugador seleccionado:
    • Click en Add Component → buscá y agregá Sprite Renderer.
    • En el campo Sprite, elegí algo simple como el cuadrado de Unity (el mismo que usaste para los tiles).
    • Cambiale el color (por ejemplo rojo o verde) para distinguirlo del suelo.
  3. Escalalo un poco (por ejemplo, X: 0.9, Y: 0.9) para que no tape todo el tile.

✅ Paso 2: Crear el script de movimiento

  1. En la carpeta Scripts, creá un nuevo archivo llamado MovimientoJugador.cs.
  2. Pegá este código completo y leelo con calma porque te explico todo:
using UnityEngine;

public class MovimientoJugador : MonoBehaviour
{
    public float velocidad = 5f;

    // Tamaño del mapa (¡ajustalo al mismo tamaño que el generado!)
    public int anchoMapa = 10;
    public int altoMapa = 10;

    // Posición lógica del jugador en el grid
    private int posX = 0;
    private int posY = 0;

    void Start()
    {
        // Colocar al jugador en el centro del mapa al empezar
        posX = anchoMapa / 2;
        posY = altoMapa / 2;
        ActualizarPosicion();
    }

    void Update()
    {
        // Detectar input (teclas flechas o WASD)
        int dx = 0;
        int dy = 0;

        if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow)) dy++;
        if (Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.DownArrow)) dy--;
        if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.LeftArrow)) dx--;
        if (Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.RightArrow)) dx++;

        // Si se quiere mover
        if (dx != 0 || dy != 0)
        {
            int nuevaX = posX + dx;
            int nuevaY = posY + dy;

            // Validar límites del mapa
            if (nuevaX >= 0 && nuevaX < anchoMapa && nuevaY >= 0 && nuevaY < altoMapa)
            {
                posX = nuevaX;
                posY = nuevaY;
                ActualizarPosicion();
            }
        }
    }

    // Convierte coordenadas de tile a posición isométrica y mueve al personaje
    void ActualizarPosicion()
    {
        Vector3 nuevaPosicion = new Vector3(
            (posX - posY) * 1f,
            (posX + posY) * 0.5f,
            0f
        );
        transform.position = nuevaPosicion;
    }
}

✅ Paso 3: Conectar todo

  1. Arrastrá el script MovimientoJugador al objeto Jugador.
  2. En el Inspector, asegurate de que los valores anchoMapa y altoMapa sean los mismos que los que usaste para generar el suelo (por ejemplo, 10).
  3. ¡Listo!

🎮 Ahora:

  • Presioná Play ▶️
  • Usá las teclas WASD o flechas para moverte en el tablero.
  • El jugador se mueve en vista isométrica y no puede salirse del mapa 🎉

🎮 También te puede interesar:

Ver todos los tutoriales de Juegos 2D

Subir