Qué resuelve el Tilemap#
Montar un nivel 2D colocando cientos de sprites a mano (uno por bloque) es inviable. El Tilemap te deja pintar el nivel con un pincel sobre una rejilla, como en un editor de mapas. Es rápido, ligero y trae colisiones casi gratis.
La plantilla 2D de Unity 6 ya lo incluye. Si no ves las herramientas, instala 2D Tilemap Editor desde el Package Manager. Abre la ventana con Window → 2D → Tile Palette.
Las piezas#
- Grid: el GameObject raíz con la rejilla. Define el tamaño de celda.
- Tilemap: hijo del Grid donde se pintan los tiles. Puedes tener varios (uno para el suelo, otro para decoración, otro para plataformas).
- Tile Palette: la ventana con tu "paleta" de tiles para elegir el pincel.
- Tile: cada casilla pintable (se genera al arrastrar sprites a la paleta).
Montar un nivel, paso a paso#
- GameObject → 2D Object → Tilemap → Rectangular: crea el Grid + Tilemap.
- Abre Window → 2D → Tile Palette y crea una paleta nueva.
- Arrastra tus sprites (o una hoja ya recortada) a la paleta: Unity genera los Tiles.
- Elige el pincel y pinta sobre la escena. Con
Shiftborras, con la herramienta de relleno rellenas zonas.
Colisiones del nivel#
Para que el personaje no atraviese el suelo pintado:
- Añade al Tilemap un Tilemap Collider 2D: genera un collider por cada tile.
- Añade también un Composite Collider 2D (y marca el Tilemap Collider como Used by Composite): fusiona todos esos colliders en una sola forma. Mucho más eficiente y sin costuras internas.
Sin Composite, un nivel grande genera miles de colliders y el personaje puede "engancharse" en las juntas entre tiles. El Composite Collider 2D los une en un contorno limpio: mejor rendimiento y movimiento sin tropiezos. Ver física 2D.
Rule Tiles: el tile correcto solo#
Un Rule Tile (del paquete 2D Extras / 2D Tilemap Extras) elige automáticamente qué sprite pintar según los vecinos: esquinas, bordes y centro de una plataforma sin que tú los coloques uno a uno. Defines las reglas una vez y pintas trazos enteros que quedan perfectos.
Un poco de código: leer y pintar tiles#
using UnityEngine;
using UnityEngine.Tilemaps;
public class RomperBloque : MonoBehaviour
{
[SerializeField] private Tilemap tilemap;
// Borra el tile que hay en una posición del mundo
public void Romper(Vector3 posicionMundo)
{
Vector3Int celda = tilemap.WorldToCell(posicionMundo);
tilemap.SetTile(celda, null); // null = quitar el tile
}
}Errores frecuentes#
- Tilemap Collider sin Composite: miles de colliders y el jugador se engancha en las juntas.
- Pintar todo en un único Tilemap: separa suelo (con collider) de decoración (sin collider).
- Tiles con Pixels Per Unit distinto al del resto → el nivel no cuadra con el personaje.
- Olvidar que el Grid manda el tamaño de celda: cámbialo ahí, no tile a tile.
Ponte a prueba#
Resumen#
El Tilemap convierte construir niveles 2D en pintar sobre una rejilla: Grid + Tilemap + Tile Palette con tus sprites. Para las colisiones, Tilemap Collider 2D + Composite Collider 2D (contorno limpio y eficiente). Los Rule Tiles eligen el sprite correcto por ti según los vecinos. Combínalo con la física 2D para el personaje y las luces 2D para la ambientación.