Why bother making your own Unity IMGUI setup when the default one works just fine?

It has everything you already need, Windows, Auto Layout, Buttons, Toggles, Text Field and Area, Images, Labels. And with all of those you could make pretty much anything you needed on top of it.

Then there is the styling, it’s rather rudementary and isn’t intended to be used as user facing UIs these days with uGUI and the relatively new xaml-like UI workflow. But the styling allowed basic texture replacement for all controls, or just draw textures directly yourself.

It’s just fine.

So why DraftUI?

Custom controls library, game agnostic, further UI systems like tooltips and dialogs. And partially some style points.

We have your usual Buttons, Checkboxes, Text Fields and Areas, Labels, Sliders. But then we have extra, opinionated but configurable, controls that touch on areas that Unity’s IMGUI wouldn’t bother with that the like minded folk may want.

Such as, List boxes with template support, Input Number like Dear ImGui, Collapsing Headers, Tree Nodes, Tabs, Seperator with an optional label, Typography labels like Headings and Captions, Toggle Buttons, Radio Groups, Search Boxes, Color editor, Keybind editor, an expanded Image control, Progress Bars, Context Menus, Menu bars, Splitters, full Dialog support, Notification/Toast System, Graphs and Markdown support.

Sounds fun huh, ✨ Graphs AND Markdown ✨.

Plus, on top of it all, a simple tokenized theme setup that Should Just Work™️

Why so much?

Why so little?

Why not include a bunch of semi-useful controls that may or may not be used in any given project?

Offering as many controls as possible means I’m not trying to botch together a new control for a situation I hadn’t thought of.

So DraftUI gets given a new control every so often, though development has slowed given how mature the project is in it’s current state.

What’s the catch?

It’s not public.

This post is entirely bragging rights.

Kind of.

I had thought about releasing it, either as a open source project or selling it as a unity package people could buy for a couple quid. But there are 2 issues I see with both.

Issue 1, open sourcing it. As it stands right now, it’s hard to create a single solo project for DraftUI given it’s references to Unity specifics. Unity changes often between versions and it’s not easy to nail down a version that works for me and potential future users. I can’t control what version of Unity they end up having to wrestle with, so if it comes to a situation where DraftUI works fine on 2020.6.7f2 and not 2021.4.2f1, it’s hard for me to justify the required Unity version bump to satisfy the consumer. I also just suck at handling people.

Issue 2, selling it. It’s a project I’ve been working on and finding a price point for it is hard. I think given it’s capability and what it could potentially offer in the future is actually quite substantial. But it’s partially the same as Issue 1, it’s hard to account for how people will use it and how to help mitigate issues. With this case being a sold product, I would feel obligated to help fix it as fast as I could in any way possible, but then that turns the project into a maintenance job. I also just suck at handling people.

Alright, so what does it look like?

I think it looks great!

Here is a video demoing everything available as of right now. There are a couple bugs here and there, they came out of nowhere and I hadn’t had the chance to fix them yet.

Final Thoughts

It’s been fun making it, if not a bit of a headache here and there with the graphs and markdown specifically. Those are rather heavy things to draw but I knew I wanted to try and make them the best they can be. I think Markdown turned out the best and Graphs has some nuances here and there that might be able to be ironed out, either way it’s been a ride.

Will I make more controls, probably, will I make another post about them, likely, but only when I have a bulk to show. I have to come up with the controls first.

Byeee :D