I'm stuck in a technology loop.

I go look at EZGUI on the web, then I go to the asset store and look at EZGUI and its $200 price tag and think, do I really want to spend that? Especially since I’m going to have to extend it so much anyways. Then I remember Prime31’s UIToolkit is free and I go load up that in unity and poke around in the code, and think about how much work it will take to get that running properly for me. Then I wonder is OnGUI really that slow that I can’t use it? Then I wonder maybe theres some new info on the 3.5 GUI and so then I come to forums, only to read about how bad OnGUI is for iOS and how I should just get EZGUI. And then the process repeats. I’ve got so little work done today. I need help.

OnGUI probably isn’t a good option for a release. Its fine for debug/mocking purposes. If your application is a few months from launch, I’d probably wait for 3.5 before committing any resources. Your $200 commitment is probably nothing compared to the time you may end up spending after a dead end solution.

3.5 isn’t going to help you. 4.0 probably will; I’d guess that will come next Fall. It will be more likely that OnGUI will be something you can build off of, when you’ll want to abandon the third party solutions, as the new GUI solution hits. So I’d suggest judging what the timeline for your releases are. Go with a third party solution if you plan to get things done quickly, and abandon their code by the end of next year. Otherwise, deal with a performance hit (and maybe worse usability; I haven’t used the other solutions, but I don’t like setting up UnityGUI) now, and allow it to get better when Unity gets better.

what makes you think EZGUI is easy to use? it could well be harder than prime’s free one. Why not consider rolling your own too?

Didn’t Charles mentionned that the new GUI will hit with 3.5 already ?
(http://blogs.unity3d.com/2011/09/28/unite-11-day-1/ , 6th comment)

When it comes to creating a GUI not sure why people aren’t just using 2-polygon planes and texturing/modifying them to display what they want. I’ve found this way to be most effective and the options are limitless, not to mention the performance is tops.

Because it’s not that intuitive ^^
I’m using this atm, but it requires :

  • to pack textures : what if I want a slightly different set of icons ? I then have to produce a different texture pack. May it be at load or in Resources folder, it is not elegant. An automatic batching from Unity itself like it’s promised in the new GUI will be far more efficient and painless.
  • to hardcode everything : not that I don’t know how to properly code a button framework or visual effects, but if new GUI implements all of these, I wouldn’t mind putting to trashcan my own solution for less lines of codes to manage.
  • managing memory and pooling : again I’m already managing this, but it would be another chore not to maintain over the scenes with a built-in solution.

TL;DR : a built-in solution will always be better :wink:
(unless we have unlimited amounts of time at our disposal)

Unless you want to release really soon or your game is very “GUI-centric”, I’d code a simple GUI with UnityGUI for now so you can playtest and make sure logic and GUI are properly separated so you can easily switch to Unity’s new GUI once 3.5 is available. They’ve announced it for late 2011, so I’d expect it no later than early 2012.

Personally, I switched to work on networking and other non-GUI related stuff until then. I already have a GUI even though it’s hardly usable on iPads and really not usable on iPhones - but that’s mainly because it was designed for desktop with mouse :wink:

EDIT: I should add that I think UnityGUI with its immediate mode approach is by far the most efficient solution when it comes to prototyping. Add a button to trigger something for testing here, add a label to display some debug information there - I couldn’t think of an easier way to do it (it took me while to appreciate immediate mode guys but by now I guess I’ll really miss it when it’s replaced with the new approach).

Unity is not so simple to manage as it appears at a first glance. 2D iOS apps can be produced with much less pain by using a different, cheaper, lower-end engine. We are not forced to use one only middleware indeed… and I realize Unity is not so friendly to 2D newcomer devs yet.