I must be the only one

I must be the only Unity dev in the entire world that doesn’t like nGUI over the built-in solution.

FIrst of all, if you want anything besides a static GUI, it’s cumbersome. Want a grid of buttons? Do all the transform, scaling, and distribution math yourself. There is no spoon.

Second, I find that while some parts of the workflow are intuitive, and it’s easy to set up a button or slider, when you start to get into anything more complex it gets really messy.

Furthermore, it’s not easy to build a re-usable solution on top of nGUI. What if I want a script that I just drop on an object, and it creates a nice menu based on some parameters. With Unity’s built-in Immediate Mode GUI this is super easy. Just define some layout parameters and a few elements and wham-bam-thank you ma’am it’s done.

The one place I would ever use nGUI is for mobile, and only grudgingly. And, if the performance issues were cleared up for Immediate Mode GUI I really feel like it would be the best solution.

So, that’s my rant for now. What do you think?

I think the built in GUI is awesome, its just slow and customizing it sucks. Also a lot of people use PlayMaker to script so NGUI is like their built in GUI. Prototyping games I 100% use the built in GUI as I can get a menu system up in seconds. I don’t know how long NGUI takes to setup but I doubt it takes shorter time than write 1 line of code.

No, you aren’t the only one. If you look at NGui’s Asset Store reviews, people have been viewing NGui differently recently. Before a few months ago, most everyone gave it five star reviews. But recently it’s been receiving much more mixed reviews.

Immediate mode is good for small things and tools, but it has some drawbacks for larger projects:

  1. Performance issues
  2. Code centric (not designer / artist friendly)
  3. Not as many built-in features as the larger libraries.

Though I would agree that’s it’s easier to use than NGui. But I think a lot of that just relates to some of NGui’s design decisions.

You aren’t.

My latest project uses native GUI, but with a wrapper layer that helps me do things more quickly and adds some functionality like tweening position and color/alpha (‘tint’, in my parliance.)

I never really liked NGUI. I did use it on a few projects and it was more or less okay but if I can avoid it, I do.

So I’m very much looking forward to the new GUI system … I only wish they wouldn’t call it uGUI because uGUI almost looks like nGUI even though obviously nGUI is actually called NGUI :wink:

I hope the new gui implementation is nothing like it.

I really like NGUI, and definitely prefer it to the builtin one. One reason is that some projects have artists and designers working on the GUI, and they work better with actual visual WYSIWYG tools rather than trying to learn C# and how to program an immediate-mode GUI. Another reason is I prefer to keep UI and logic separate, using a MVC approach, and that doesn’t really work well with an immediate-mode GUI where the whole point is to tightly combine logic and UI. I have one project where we’re using NData with NGUI for a full MVVM approach and that’s pretty cool, but I’ve also used NGUI alone and it’s still easy to work with.

Use UITable. It automatically handles laying everything out in a grid.

I would guess that once you get a complex Unity GUI set up, it’s going to look pretty messy, especially to anyone who isn’t a decent coder.

In NGUI you would use UITable with a prefab of whatever you want each row of the menu to look like, and set the text in each one via code. Or use NData with a ListBinding.

I think, you’re new to creating Unity games.

Next thing you’ll be telling us the GC isnt so bad.

Post a screenshot of your GUI, I want to see what you made that is so awesome that you prefer the Unity GUI over NGUI.

As makeshiftwings said, there are solutions to the problems you mentioned - UITables or UIGrids, prefabs, etc.

However this probably points to a couple of things:

  1. No GUI framework that I know of is that easy to plug in and go within your app. They all seem to do things a bit differently, and they all require a lot of learning to be productive with.

  2. The NGUI beginner documentation/tutorials could be improved.

On the plus side:

a) If you’re willing to invest the time, the NGUI creator’s YouTube videos are very good. YouTube videos come out with major new releases, and are pretty descriptive on how to solve new problems, or better ways to solve old problems. I find them more helpful than the fairly static documentation and limited examples.

b) NGUI is still being very regularly updated and the creator is responsive and quick to fix things. Maybe a little too quick sometimes, as there does seem to be a reasonable number of regression bugs popping up lately, however those too get stamped out in the next, rapid update.

I’ve only used NGUI and UnityGUI, so I can’t comment on the other popular frameworks like Daikon Forge, but I can say that after I battled to get my head around the NGUI design, and started paying more attention to the YouTube video updates, my game’s GUI has looked ever-more professional with NGUI, certainly much better than I could have achieved with UnityGUI. I’d advise you to persevere.