Quick answer: Pack all tile sprites into a single Sprite Atlas. Set TilemapRenderer Mode to Chunk. Every tile in a chunk now batches into one draw call.

Profiler shows 200+ draw calls just for the Tilemap. Tiles come from 30 different sprite files. Without an atlas, each distinct texture forces a new batch.

The Symptom

Frame Debugger shows many short Tilemap draws. SetPass calls climb with tile variety. Mode = Chunk doesn’t reduce the count.

The Fix

Step 1: Sprite Atlas. Right-click Project → Create → 2D → Sprite Atlas. Add the folder of tile sprites as Objects For Packing. Pack settings: Block Offset 1, Padding 4 (prevents bleed). Build the atlas.

Step 2: TilemapRenderer Mode = Chunk.

TilemapRenderer Inspector:
  Mode:           Chunk
  Detect Chunk Culling Bounds: Auto
  Sort Order:     Bottom Right (or your preference)
  Material:       Sprite-Default (or one shared by all tiles)

Step 3: Single shared material. Every tile must use the same Material. Override only if you have very few exceptions; one-off materials kill batching.

Per-Tile Sort

Need foreground/background tiles in the same Grid? Add separate Tilemap layers (each is one Chunk batch) and set Sort Order on each. Trees-foreground at higher Sort than ground-background.

Verifying

Frame Debugger after the change. Tilemap draws collapse to one or a handful per chunk. SetPass calls drop. Stats overlay confirms.

“Atlas. Chunk. Shared material. Tilemap batches.”

Related Issues

For TilemapCollider edges, see collider edges. For Rule Tile corners, see Rule Tile.

Atlas plus Chunk plus shared mat. One draw per chunk.