Shipping dozens of separate PNGs to Unity means more draw calls, a messier project, and slower loads. Packing them into one sprite sheet (a texture atlas) fixes all three — Unity can batch sprites that share a texture, cutting draw calls on 2D scenes. This guide packs a sheet for free in your browser, then shows the two ways to slice it in Unity: the quick built-in way, and the exact, named way using the coordinate JSON.
What you'll end up with
Two files: the packed atlas sprites.png and a sprites.json describing every sprite's name, position, size and pivot. Unity slices the PNG into individual sprites you can drop into scenes, SpriteRenderers, UI Images, or animation clips.
Step 1 — Pack the sprite sheet
Open the free EazyStudio Texture Packer and drag your PNG frames in. On the settings panel:
- Format → Unity — exports the coordinate JSON Unity workflows expect.
- Trim transparent pixels → on — packs tighter, smaller texture.
- Extrude / bleed → 1–2px — stops neighbouring sprites bleeding in when the camera scales (a common cause of thin edge lines).
- Size Constraint → Power of two — 512 / 1024 / 2048; required for the best GPU compression in Unity.
Click Generate Atlas, then export the PNG and the Unity data file.
Step 2 — Import the atlas into Unity
Drop sprites.png into your Unity project. Select it and, in the Inspector, set:
- Texture Type → Sprite (2D and UI)
- Sprite Mode → Multiple
- Filter Mode → Point (no filter) for pixel art, or Bilinear for smooth art.
Click Apply.
Step 3 — Slice it (two ways)
A. Quick: auto-slice in the Sprite Editor
Open Sprite Editor → Slice → Type: Automatic → Slice → Apply. Because you trimmed the sprites, Unity detects each one from the transparent gaps. This takes seconds and needs no JSON — perfect if you don't care about exact names or pivots.
B. Exact: slice by the JSON (names + pivots)
Auto-slice guesses boundaries and names sprites sprites_0, sprites_1… If you need the original names and precise pivots, drive the slicing from the exported JSON. The file gives you everything Unity's SpriteMetaData needs:
A short editor script maps those rects onto the texture. Note Unity's texture space is bottom-left origin, so flip Y (textureHeight - y - height):
Put that in an Editor/ folder, select the atlas PNG, and run Tools ▸ Slice Atlas From JSON. Every sprite is created with its real name and pivot.
Tip: prefer zero code? The free TexturePacker Importer on the Unity Asset Store reads this same JSON layout and slices automatically — the export is standard, so it drops right in.
Step 4 — Use your sprites
Expand the atlas PNG in the Project window — each sliced sprite appears as a child. Drag any of them into a scene to create a SpriteRenderer, onto a UI Image, or select a run of frames and drag them together to auto-build an animation clip for an Animator.
Why pack in the browser?
- No install — it runs in your browser; your art never leaves your machine.
- Free — trim, extrude, power-of-two and multi-page packing that desktop packers charge for.
- Cross-engine — the same sprites re-export to Phaser, PixiJS or a Godot
.tresif you switch engines.
Make your Unity sprite sheet now
Free, in your browser — packs the atlas and exports the Unity JSON.
Open the Texture Packer