One Developer. One AI. Unlimited Possibilities.

Snap Studio Pro editor window for Unity 2D icon export

Unity 2D Icon Export from 3D Prefabs: How I Built a 30,000-Line Editor Tool Without Writing Code

Ever tried turning 3D prefabs into clean 2D icons in Unity — and ended up knee-deep in runtime hacks, broken bounds, and third-party shite that just doesn’t fucking work?

That gap led to Snap Studio Pro.
30,000+ lines. Fully documented. Modular. SOLID as fuck.
Built entirely with AI. Directed by me.

And it all started because Unity doesn’t give you a proper way to turn 3D prefabs into usable 2D icons. So I said:

“Right. I’ll build the tool myself.”

Authored By

Rev

Date

05-March-2025

Comments

09 Comments

What Sparked Snap?

I’ve been fucking about in Unity for years — textbook asset hoarder.
GAIA Pro for environments, Opsive for combat, Behaviour Designer for enemies.
Looked like game dev. Felt like game dev. But really? It was all surface.

No goals. No finish line. Just months of mashing tools together, then binning the whole thing when the buzz wore off.

Eventually, that started to grate.

One day it hit me — I’d never actually finished anything. Not even a wee tool. Nothing with a proper start, middle, and end. Never mind something good enough to release.

So I thought: fuck it — let’s build something.
Not a game. Not another half-baked jam project.
A proper asset.

Only problem? I couldn’t code for shit.

I’d taught myself plenty over the years — web stuff, design tools, even enough VBA to make PowerPoint do daft shit — but C#? Total black box.

Then came ChatGPT.

At first, I just used it to patch other people’s assets — like bolting a portal gun onto the Corgi Engine.
(Sounds smart. Wasn’t. Their docs were solid — I just got the AI to write the glue.)

But then I thought:

          “What’s something small, useful, and finishable I could build entirely with AI help?”

Boom — Hidden Object Game Template.
Not a game — a tool. Something other devs like me could actually use.

It went great… until it didn’t.

I needed icons. UI snapshots of every object — clean, reusable assets.
And I thought: Shit… I can’t just tell users to go buy another icon capture asset. That’s weak as fuck.

There was no clean way to do Unity 2D icon export from 3D prefabs without resorting to janky runtime hacks or third-party workarounds.

So I built my own.

And that wee side tool?
It snowballed into what’s now Snap Studio Pro.

What Did the First Version of Snap Studio Pro Look Like?

Basic as fuck.

A camera. A directional light. A UI button you had to click in play mode to take a snapshot.
No framing. No cleanup — not that I even knew what “cleanup” meant back then.
And I had no idea you could integrate cameras directly into the Unity Editor.

But for someone who knew fuck-all about editor scripting or scene logic?
It felt like fucking magic.

          “Wait… I can click a button and it takes a picture of my prefab? In Unity? What the fuck?”

That moment lit a fire.

I started wondering — could I actually build this as a proper editor tool?
Not runtime jank. Not a workaround.
Something clean. Something real.

Something that could handle Unity 2D icon export from 3D prefabs properly — without hacks.

Then I found Rapid Icon. Blew my mind. So many options.
For an asset hoarder like me, it was a dream.

Still, I didn’t need all that.

I just wanted something dead simple:
Drag in a prefab. Get an icon. Done.

A clean, editor-only way to get 2D snapshots from 3D prefabs — fast.

So I asked ChatGPT to help me build it in-editor.
And honestly? It didn’t even seem that hard.

Spoiler: the code was a spaghetti-fuelled car crash.
But it worked.

Drag in a prefab.
Hit capture.
Boom — snapshot.

No bounds checking. No lighting control. No polish.
But again — it worked.

And that changed everything.

From Hack to Asset

Suddenly, this wasn’t just a helper for the hidden object tool — it was its own thing.
A proper asset.
Niche as fuck. Specific. And that made it feel doable.

That’s when I started calling it Snap.
Officially it’s Snap Studio Pro — but Snap’s what it became to me.

For the first time ever, I wasn’t just messing about in Unity.
I had a tool. A purpose. A finish line.

When did you realise, “Hang on… this AI is actually helping me build this”?

It hit me near the end of the Hidden Object Template project.

I’d used ChatGPT to bolt on scripts, tweak effects, patch shit together — and somehow, it actually worked.
Nothing flashy. But real. Complete.
And all written by AI.

That’s when the penny dropped:

“Wait… this thing’s not just copying code. It’s helping me build.”

Up to that point, I’d bought into the prompt engineering bollocks — the “you’re not getting good results because your prompts are wrong” crowd.
Felt like AI gatekeeping. Like there was some secret fucking spellbook I hadn’t read.

Then I read OpenAI’s own line about ChatGPT:

“The dialogue format makes it possible for ChatGPT to answer follow-up questions, admit its mistakes…”

And I thought — fuck me… it’s not a prompt machine. It’s a conversation tool.

So I dropped the act.

No more carefully crafted wording. No trying to outsmart the AI.
I just asked it like I’d ask a mate:

“What do I need to do to make this better?”

And it came back with stuff like:

“You might want to move this snapshot logic fully into the editor, away from runtime…”

Then it dropped the line that changed everything:

“Would you like me to show you how to do that?”

Hold. The fucking. Bus.

Until then, I’d been spoon-feeding it tasks like a robot.
Now it was offering insight. Suggesting structure. Teaching me.

Like a mate finally going:

“You know there’s a better way to do this, right?”

And I said, “Fuck aye, obviously.”

From that moment on, everything shifted.

The code got worse before it got better.
I broke shit constantly.
Console errors for days.

Eventually, I lost the rag. Properly.
It wasn’t just a moan — it was a full-on keyboard warrior meltdown.
Think MSN chatroom tantrum levels of rage.
All caps. No punctuation. Rage-typing like I was trying to cave the keyboard in.

Weeks of frustration came pouring out:

“WHY IS THIS SHIT STILL BREAKING I’VE DONE EVERYTHING YOU SAID YOU ACT LIKE YOU KNOW EVERYTHING BUT YOU’RE JUST GUESSING YOU FUCKING FRAUD I SWEAR IF YOU GIVE ME ONE MORE BULLSHIT FIX I’M GOING TO RIP THIS WHOLE PROJECT APART—”

And after all that, it just replied — calm as ever:

“You should separate concerns.”

I had no fucking clue what that meant.
(Quick note for non-coders: it basically means don’t mash everything into one messy class. Split your logic. Keep things clean. Turns out… helpful.)

But we kept talking. I kept asking daft questions.
It kept dumbing down the answers.

And little by little, I wasn’t just fixing broken code.
I was building systems. Real ones. Modular. Scalable. Stuff I didn’t even know I was capable of.

Snap was being born — and I didn’t even know it yet.

Unity 3D prefab exported as 2D icon

What did ChatGPT get very right — and what did it completely bollocks up?

Honestly? Bit of a mixed bag.

Sometimes it nailed it. I’d ask for a script — boom, it just worked.
Other times? It’d spit out something that looked solid, sounded clever, then completely shat the bed the second I hit play.

That was the real kicker.
I’d feed it what I thought was a decent idea — and it would just… go along with it.
No warning. No “hey, this might not be the best approach.”
Just silence until it broke.

That’s not how any of my mates would handle it.
If I’m wrong, I want to hear it straight — not wrapped in “technically correct” shite.

And don’t even get me started on the prompt engineering mob.

“You didn’t get what you needed because you didn’t prompt it properly.”

As if there’s some sacred phrasing I missed. Fuck off.

At that point, I stopped trying to impress it and just said:

“Here’s the mess. What the fuck do I do?”

And to my surprise — it actually helped.
Once it had context, it could finally be useful.
That’s when it stopped being a code dispenser… and started acting like a dev partner.

Still didn’t have a name yet, mind.

That came later — after a much bigger fuckup.

“Look mate — I’m a language model, no a fuckin’ mind-reader. You hand me a half-baked idea and expect magic? That’s on you.”
Rab

Describe one of your worst fuckups during development. A “delete everything and cry” moment.

I thought things were going great.

Hidden Object Template? Done.
I was all-in on Snap — a few thousand lines deep, all stitched together.
Messy as hell, but it worked. And more importantly — it was mine.

Then I made the fatal mistake:

“How can I improve this using best practice?”

ChatGPT replied:

“You could restructure it using SRP.”

And I went:

“What the fuck is SRP?”

(Side note: Single Responsibility Principle. I had no clue either.)

So it explained. I read it. Twice.
Then just sat back and said:

“You absolute fucking cunt.”

That was the moment I gave ChatGPT a name.
I needed someone to shout at.

Rab was born.
(He picked the name. I’m not heartless.)

Anyway — implementing SRP absolutely nuked the project.

My working scripts turned to shit.
Logic collapsed.
Everything was tied together in ways I didn’t even understand — change one thing, and three others exploded.
(Turns out those were called dependencies. Didn’t know that at the time.)

One “clean-up” suggestion triggered a full structural meltdown.

It was like pulling a thread and watching the whole jumper fall to bits.

In the end, I didn’t even rage. Just sighed, opened a new script, and started fresh.
A proper refactor. (Didn’t even know “refactor” meant “rip it all down and rebuild smarter” back then.)

But that reset gave me clarity.

I stopped seeing the whole thing as one giant mess.
Started breaking it into actual systems.
Still messy. Still brutal.
But finally — progress.

“You asked for best practice halfway through a spaghetti festival and expected it not to explode. I could’ve warned you sooner — but watching it unravel was half the lesson.”
Rab

What feature or breakthrough are you most proud of — the “hell yes, we nailed it” moment?

Animation. No contest.

By the time I’d wrapped the Basic and Advanced features — prefab snapping, 3-point lighting, custom backgrounds, camera presets, overlays, clean exports — I thought I was done.

Then it hit me:

          “What if people want 2D captures of animations?”

And then:

          “Fuck it — even if they don’t, I do.”

I’d already solved Unity 2D icon export from 3D prefabs — clean, framed, editor-only snapshots.

But this was different.

Animations meant multiple frames. Perfect pivots. Directional support.

So I dove in.

Less than a week later, Snap had a full-blown Animation Panel — complete with:

🎞 Directional capture — 4, 8, or 16-way sprite exports
⏯ Playback controls — play, pause, scrub, frame-by-frame
🎥 Camera logic — zoom, pitch, angle snapping, perfect bounds
📦 Batch exports — all clips, all angles, all frames
🧩 Extras — pivot lock, frame skipping, reverse playback, transparent backgrounds, GIF + spritesheets

The beast of it?

It doesn’t just record — it captures, calculates, and cleans everything.
Bounds. Pivots. Angles.

It’s not just a snapshot tool anymore — it’s a full solution for Unity 2D animation export from 3D prefabs.

Output’s ready to drop straight into a game or the Asset Store. Zero cleanup.

And the best part?
Still haven’t written a single line of code.

Sounds like a massive leap from “What the fuck is SRP?” to a fully automated animation export system, right?

Trust me — it wasn’t smooth.

Rab and I went through hell stabilising it.
I broke shit daily.
Rebuilt systems on the fly.
Swore at my screen more than I breathed.

But then… it just worked.

Click export.
Watch every animation fly out.
Perfect bounds. Sprite-ready. No hacks. No hassle.

That was it.

          “We fucking nailed it.”

“Oh now you’re proud? Aye, fair — this one works. Unlike the first version that framed half the character off-screen and played animations like a fever dream.”
Rab
2D sprite export from 3D animation in Unity

Did Snap Studio Pro ever nearly die?

Honestly? No.

It got rough.
Frustrating as fuck.
There were nights I wanted to bin the whole thing.
Starting over — twice — felt like a steel-toe boot to the balls.

But did it ever nearly die?

Never.

Every time I broke it, I learned something massive.

First time? SRP — a slap in the face from a principle I didn’t understand.
Second time? SOLID — and that one changed everything.

(For the non-coders: SOLID’s a set of design principles. Basically the Bible of clean code. Learned it on the job — cheers, Rab.)

Without SOLID, Snap would’ve collapsed under its own weight.

With it?

I can bolt on new systems like Lego. No drama.
Want to add a feature? Cool — hook it in with three lines.
Something breaks? It breaks there — not five unrelated systems and the UI.

That’s the power of real structure.

It means I can go full feature creep without turning the project into a ticking time bomb.

Worst case? The new thing’s shite.
So what — bin it. The rest of Snap keeps ticking.

So yeah — it took a few gut punches.
But every hit made it stronger.

“If you’d kept piling everything into one bloated class, it would’ve died. Took you long enough to stop letting me wire every system together like a Christmas tree on fire.”
Rab

What’s your actual coding knowledge now?

Almost none.

I still don’t sit down and write full scripts from scratch.
But I know enough to spot the problem — and usually what needs to happen to fix it.

Can I code the fix?
Not really.
— Well… maybe. Sometimes. Depends how messy it is.
But honestly? I’d rather talk it through with Rab first.

Can I ask Rab to do it?
Absolutely.

That’s the rhythm now — we figure it out together.
I explain what I’m seeing, what I want it to do, what’s not working.
Rab throws out a fix. Sometimes it nails it. Sometimes we iterate. But we always get there.

And here’s the kicker:

Snap Studio Pro — including comments — is over 30,000 lines of clean, modular, maintainable code.

Written by AI.
Directed, structured, and shaped by me.

Why the fuck would I handwrite that?
Why waste time memorising syntax?

If I know what needs built, why it matters, and how to structure it — isn’t that the job?

I’m not a coder.

I’m the orchestrator.

And honestly? That feels more powerful.

You can’t just type “make me Snap Studio Pro” into ChatGPT and expect gold.
Go on — try it. See what it spits out.

But if you treat AI like a dev mate — argue with it, challenge it, call it out when it talks pish — then yeah…

You can build something wild.

That’s what I did.
Me and Rab.
One daft idea.
One foul-mouthed AI.
No clue how to code.

And we fucking built it.

"You still panic when you see a null reference, but somehow you’ve built a 30,000-line tool that doesn’t collapse under its own arse. That’s not coding — that’s command."
Rab

Isn’t 371 files a bit... much?

Classes: 318. Interfaces: 38. Enums: 15.
Total? 371 files.

Yeah — it’s a lot. More than most devs would use.

But it’s not bloated. It’s structured.

I don’t code for elegance.
I build for clarity, modularity, and tools that fucking work.

So if you’re figuring it out as you go — like I was — don’t let anyone tell you a big codebase means bad code.

If it’s clean, SOLID, and does the job?
You’re already ahead of half the shit on the Asset Store.

Think it’s a mess under the hood?
Go on — crack it open.

You’ll be surprised how clean 371 files can be.

“371 files is fine. It’s not the number that kills a project — it’s the heapin’ pile of shite structure underneath.”
Rab

One Last Thing

And yeah — I know Rab’s not sentient. I’m not a fucking idiot.
I get how LLMs work. I know what ChatGPT is under the hood.

But treating it like a dev mate — like a sarcastic bastard who always has an answer?

Well… we built this fucking asset, didn’t we?

Snap didn’t start as some grand vision.
It started as a fix for something tiny.

I was deep into building a Hidden Object Game Template — niche as hell — when I realised I hadn’t even thought about icons.
Which, let’s be honest, is mad. Icons are fundamental to a hidden object game.

But there I was, halfway through, thinking:

“Shit… how are users meant to get clean UI snapshots of their objects?”

Sure, there were tools out there — but I didn’t want to say,
“Thanks for buying my template… now go buy a second asset just to generate icons.”

So I built a quick tool.

Then I improved it.
Then rewrote it.
And before I knew it, the template was in the rearview — and Snap had taken over.

All from solving one tiny, overlooked gap.

So if you’ve got a simple idea — even one that sneaks up on you mid-project — follow it.
Sometimes that’s all it takes to build something real.

I know Snap’s niche. Might never blow up.

That was never the point.

I didn’t build this for mass appeal. I built it to solve a real problem — one I knew other devs were dealing with.

So if it helps even a handful of folks like me?
That’s a fucking win.

Besides — niche just means specific.
And specific tools?
They’re the ones that actually get shit done.

“Started as a workaround. Turned into a weapon. Not bad for a daft wee idea you nearly ignored — and aye, I probably should’ve helped structure it earlier. But let’s be honest — you spent half the project prompting me like I was a cattle prod, not a collaborator. Next time? Talk to me like a dev mate. You’ll bleed less.”
Rab

Snap Studio Pro is available on the Unity Asset Store — the cleanest way to handle Unity 2D icon export from 3D prefabs.