Which GUI solution to choose?

Hi,

I would like to ask for some advice. We have a project for the iPad (1) which we re-start in Unity. Its frontend is quite complex, with many-many items.

Recently I read almost all the threads regarding GUI solution, checked the videos of EZGUI, UIToolkit, NGUI, but still, I’m a bit uncertain which one to choose. I attach some PS screenshots, these screens must be recreated and make alive in Unity.

Since we would like to finish the project in two months, I think I cannot rely now on the upcoming new Unity GUI. Later on we would like to submit the game for the desktop App Store and for Android as well.

Any advice would be welcomed…

Many thanks and best,
Gyula

Main menu example:

Photo album example (48 pics in the album):

Shop example:

Window example (Pause)

I can’t comment on the others, but I’ve been using EZGUI for quite a while and am very satisfied with it. It’s easy to use, very efficient with respect to draw calls, and has great support. It could certainly handle the 2D aspects of your game shown in the screen captures.

The only minor complaint I have is with text, although it’s more a problem with the program that generates the font files rather than EZGUI itself. Some (not all) fonts are rendered with pretty bad spacing. The only solution I’ve found is to manually tweak the spacing in the font files.

EZGUI is easy to use and is very efficient with draw calls? cough hack cough

EZGUI relies on Unity to batch draw calls. It has no batching of its own – which is, needless to say, far from efficient. It doesn’t support fonts and UI elements being in the same atlas which means you get multiple draw calls where you should only have one. Its texture atlas generation is hideously inefficient and wastes a lot of texture space. And as for it being easy to use? Everyone I’ve had to teach it at work took days / weeks just to get the basics without something being screwed up / broken.

And I’m not even going to mention the state of code that drives it all…

Just interested, which of the other GUI solutions would you recommend? I’ve only tried EZ GUI so far personally.

I’m not the best person to ask here, my opinion would be heavily biased as I created one of the mentioned UI solutions. I have nothing against the 2D Toolkit or ex2D, I hear they are also pretty good. It’s just the EZGUI I am not fond of as I’ve had to use it professionally twice, and both times we ended up scrapping it 2 months into the project due to various reasons (iOS/Android targeted games).

Looking at example photo #3, I would recommend going native for your complex shopping and main menu examples, then use UIToolkit for your in-game UI and pause menu. Draw calls are not as big a concern with modern Unity and iPad targets, I would be worried about pixel-perfect art and having those scroll views feel right. I don’t know what you plan on doing to animate the page turns on example 2 either, so that’s something to consider as well.

I used 2DToolkit for GUI as well as making a 2D game. It comes with a few GUI examples which I expanded on best part… $55 I did have to write my own toggle button but used their button example as a starting point, took me less than 30 minutes. I really cannot recommend it highly enough.

On my level select screen I have around 30 buttons… you can even make button states animations.

I have only used UIToolkit but that is because since I began using it I have found it met my needs. Prime31 is really helpful with timely assistance. It is open source so and the code is well structured so if you have the time talent anything is possible.

UIToolkit includes layouts, buttons and sliders so most of it will be pretty straight forward. More advanced functionality will have be built on top of these building blocks. The equipment section appears to use a vertical scroll container, UIToolkit has this feature but it’s in beta. I am using it, the one quirk I have found with it is that you have to hold down the touch for it to register the selection (feels like about 300ms).

Since ArenMook can’t really vote for himself, I’ll do it. NGUI is excellent. I’ve switched to it having come from EZGUI and UIToolkit.

All of the mentioned products are good. But… NGUI, in my opinion, has by far the best power to ease of use ratio. And it’s priced reasonably.

UIToolkit is a little limited, but given that it’s free, it’s an amazing package that’s also well worth trying.

Thank you very much for your insights. I’m looking for something WYSIWYG solution - so far, as I see, NGUI earned quite a good reputation. UIToolkit is also very friendly, but requires much more coding.

To be pixel perfect is very important for me to enjoy the graphics - also, smooth shopping experience with easy-in-out movement is essential.
Timely assistance is also required - here NGUI excells, it seems AreMook never sleeps :slight_smile:

I sleep… sometimes… :frowning:

Regarding prefabs instancing of Widgets…

I’ve got this situaiton where I have 2D objects in 3D space that represent various effects or pickups (like a 2D image of a coin or whatever).

What I’m doing is instancing the prefab for it and positioning it in 3D space (with the layer set to main camera visible) parented to some other 3D object that it needs to be relative too. Actually I have it as a child in a prefab heiarchy come to think of it.

This works just fine. Thing works as expected.

But… is it batching? Or is it creating a separate panel for each?

@nsxdavid: I think you posted this in the wrong thread

Oops!

As for WYSIWYG solutions, the closest I’ve seen to that on Unity is NGUI.

NGUI lets you build your user interface mostly in the scene view by creating objects in a hierarchy and attaching appropriate components.

It can be pixel perfect, can scale to different screen sizes easily and seamlessly. It can do the scrolling view of complex composited items. Has built in tweening animation. And gets better all the time.

Very easy to extend with new behavior. The easiest to extend of any system I’ve used.

David

Well David, I took your advice and just purchased NGUI. Now comes the sweet part: to learn and use it…

Tutorials are pretty good, check out both the video and the written on the web site.

Not to mention the included examples.

The new tweening is not in the docs yet, but I assume they’ll catchup.