unity-2d-tilemap

v2026.09.24

Unity 2D Tilemap — Grid + Tilemap, Rule Tiles, Animated Tiles, Tile Palette, Hexagonal/Isometric grids, Composite Collider 2D + Tilemap Collider 2D, procedural tilemap generation. USE WHEN: building level geometry from tiles, painting auto-tiling terrain, isometric/hex maps, optimising tilemap colliders, runtime tilemap generation. DO NOT USE FOR: free-form sprites (use `unity-2d-core`); platforming movement (use `unity-2d-gameplay`); 2D physics general topics (use `unity-2d-physics`).

GitHub
Install command
npx skhub add claude-dev-suite/unity-2d-tilemap
Markdown
SKILL.md

Unity 2D Tilemap

Grid + Tilemap hierarchy

Grid (component on parent)
└── Tilemap_Background   Tilemap + TilemapRenderer
└── Tilemap_Ground       Tilemap + TilemapRenderer + TilemapCollider2D + Rigidbody2D(Static) + CompositeCollider2D
└── Tilemap_Decorations  Tilemap + TilemapRenderer

One Grid → multiple child Tilemaps. Sorting per Tilemap via Sorting Layer + Order in Layer.

Tile types

TileUse
TileSingle sprite per cell
Animated TileSprite cycles through frames at set speed (rivers, torches)
Rule TileAuto-picks sprite based on neighbor cells — borders, corners, isolated rocks
Random TilePicks one sprite at random from a list (variation in flat ground)

com.unity.2d.tilemap.extras package adds Rule/Animated/Random/Hexagonal Rule tiles.

Rule Tile — auto-tiling pattern

For ground tiles:
  Top neighbor empty + sides full → top edge sprite
  All neighbors full → solid interior sprite
  Top + right empty → top-right corner sprite
  ... etc

Define the matrix in the Rule Tile inspector — a 3×3 grid of Filled / Empty / Don't Care per rule.

Tile Palette

Window > 2D > Tile Palette. Drag sprites in → it generates Tiles automatically. Use brushes (Default, Random, Animated, Custom) to paint efficiently.

Composite Collider for performance

Per-cell colliders = many small physics objects. Composite collapses them into one polygon:

Tilemap_Ground (GameObject)
├── TilemapCollider2D       Used By Composite = ON
├── Rigidbody2D             Body Type = Static
└── CompositeCollider2D     Geometry Type = Polygons (or Outlines)

Result: one collider for the entire tilemap → physics queries cheap, broadphase fast.

Hexagonal & Isometric grids

Grid > Cell Layout:

LayoutWhen
RectangleStandard top-down / side-scroller
Hexagon (Pointy-Top)TBS / 4X games
Hexagon (Flat-Top)Stylistic preference
Isometric"Diablo-like" 2.5D
Isometric Z as YFaking depth in iso (objects further north appear behind)

For iso, add Anti-Aliasing to the camera and use Sorting Group carefully on multi-cell sprites (trees, towers).

Procedural tilemap generation

public class CaveGenerator : MonoBehaviour {
    [SerializeField] private Tilemap tilemap;
    [SerializeField] private TileBase wallTile;
    [SerializeField] private TileBase floorTile;
    [SerializeField] private int width = 64;
    [SerializeField] private int height = 64;
    [SerializeField] private float fillPct = 0.45f;

    public void Generate(int seed) {
        var rng = new System.Random(seed);
        for (int x = 0; x < width; x++)
        for (int y = 0; y < height; y++) {
            bool wall = rng.NextDouble() < fillPct;
            tilemap.SetTile(new Vector3Int(x, y, 0), wall ? wallTile : floorTile);
        }
        // (typical next step: cellular automata smoothing)
    }
}

Use tilemap.SetTilesBlock for batch writes — much faster than per-cell SetTile for big maps.

Anti-patterns

Anti-patternFix
Per-cell colliders without CompositeTilemapCollider2D Used By Composite = ON + CompositeCollider2D + static Rigidbody2D
Painting collisions onto deco tilemapSeparate visual tilemap from collision tilemap
One huge tilemap for a sprawling worldChunked tilemaps streamed by Addressables / scene loading
SetTile per cell in a loop for procgenSetTilesBlock with prepared arrays
Mixing iso + rectangle on same GridOne Grid type per scene

Production checklist

  • Tilemaps split by purpose (background / ground / decorations / collision)
  • Collision tilemap uses Composite Collider 2D
  • Rule Tiles for auto-tiling terrain — no per-tile painting of edges
  • Tile Palette saved as asset, version-controlled
  • Big maps chunked / streamed
  • Sorting strategy consistent across tilemaps
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/gamedev/unity-2d-tilemap

Default branch

main

Latest commit

9496306

Tree SHA

fe4e2f1