UI options in Unity 3D

Update: As of May 2012, there are newer and reasonably attractive options for UI in Unity, such as Tasharen’s NGUI. This post will be updated if I get to try any of them out.

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:

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.

EZGUI Pros:

  • 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

EZGUI Cons:

  • 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.

Check out my next post for how to setup EZGUI with a Unity project, and to get some Sprite Text to render to the screen.

About Sean Sanders

Sean Sanders is a professional video game developer based in Eugene, Oregon. He has shipped titles for the Wii, PSP and Playstation 3 consoles as well as the Facebook platform and iOS devices. He also has over 10 years of experience working with Flash and Actionscript.

Sean has written 9 awesome articles for us at Bit By Bit Studios

Tagged: 1 Comment

1 Comment

  1. [...] UI in Unity but not sure what solution to go with? See my previous post explaining why my team chose to use [...]

What do you think?

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">