UNITY EDITOR TOOL
TMP Sprite Atlas Builder
Individual PNGs to named TextMeshPro sprites. Rebuild the atlas without reconnecting scenes and prefabs.
v1.0.0 · Asset Store submission pending
Last confirmed 27 October 2026: Pending, queue #824. Submitted 13 October; automatic publishing is off. No public purchase page yet.

Actual project UI. Open the image to inspect the details.
Problem
Manual atlas assembly, slicing and sprite renaming make small icon updates fragile. Recreating a TMP Sprite Asset can break references already stored in prefabs and scenes.
Solution & my contribution
An Editor workflow scans PNGs recursively, validates the inputs and packs a deterministic NPOT atlas. Each filename becomes a TMP sprite name; manual Rebuild updates existing assets in place.
Result
A repeatable icon pipeline: atlas and TMP asset GUIDs, material identity and scene/prefab references survive rebuilds. New names are appended deterministically; surviving names retain their order.
Engineering decisions
- Stable references — update atlas texture, TMP asset and material in place; reject invalid inputs before touching outputs and roll back ordinary write/import failures.
- Deterministic MaxRects packing — independent maximum width/height and configurable padding; no rotation, trimming or scaling. A heuristic layout, not a claim of mathematical optimality.
- Named sprites & onboarding — 1 PNG = 1 name, recursive import, Validate before manual Rebuild, reusable profiles and a Basic Usage sample. No Unity Sprite slicing.


Verification & scope
Recorded v1.0.0 verification: 85/85 EditMode tests, 10/10 separate sample integration scenarios and 10/10 classic smoke scenarios. Asset Store Validator: 35 passed, 2 warnings (SRP compatibility and NPOT dimensions), 0 failures. These are project records, not tests rerun by this website.
Tested with Unity 6000.3.22f1, uGUI 2.0.0 and Test Framework 1.6.0. One atlas page, PNG only, manual rebuild; no custom per-sprite metrics. Built-in and a manual URP smoke were checked; HDRP and custom pipelines remain unverified.