I think Unity is a great game engine for professionals and hobbyists alike. At the time of writing, I’ve been using Unity for just under a year and served as lead engineer on a shipped iOS and Facebook game built with the engine, Rinth Island. One particular aspect of Unity development my team and I spent some time researching in the beginning of Rinth Island was how we would handle UI for the game. We found Unity’s built in onGUI() UI solution to be too complicated to iterate with, and too script intensive for many of our artists to be able to adjust UI themselves. We also had some issues with the performance implications of MonoBehaviors’ onGUI() function (especially on the iOS build).
Here are some of the ones we considered:
- EZGUI from AnBSoftware
- GUIX from Ennanzus Interactive
- … and a couple others I can’t even find online anymore. There aren’t a lot of choices!
After a week or so of trials, we ended up choosing AnB Software’s EZGUI. It had an extremely modest license cost and also provided source for the library, which we really wanted.
- Cheap license
- Source included
- Active user community, fast email support responses
- Batched draw calls with texture packing into atlases
- Easier to get UI from artist mockup -> in game than Unity’s built in UI
- Steep learning curve, hard to initially setup
- 10+ steps to get an asset from mockup -> in game
- Poor texture packing algorithm results
- Easy to put textures in, hard to take them out or change them
After all is said and done, I think we made the right choice with EZGUI for our game. EZGUI is certainly not the best UI library I’ve ever worked with, but I think it’s probably the best currently available for Unity. It can sometimes be a pain in the ass, and certainly has room for improvement, but I’m definitely glad we had it over the stock solution during the development of our game. I’m now starting on my 2nd major Unity project and utilizing EZGUI again for this project is a no-brainer.
What I’d like to do this time is impart some wisdom gained the hard way during development of Rinth Island, that will hopefully make my 2nd foray into Unity UI development (and any of yours) much easier and more fun.