NGUI (Next-Gen UI) -- demo final feedback request

NGUI is a powerful UI system and event notification framework for Unity (both Pro and Free, 3.4.2f3 or higher) written in C#. It features clean code and simple, minimalistic approach to everything. Most classes are kept under 200 lines of code. For a programmer this means a much easier time when it comes to working with the kit — from extending its functionality to tweaking the existing one. For everyone else this means better performance, smaller footprint, and less memory overhead — all of which ultimately save you money.

Features:

  • Full Inspector integration
  • No need to hit Play to see the results
  • What you see in the Scene view is what you get in the Game view (fully WYSIWYG)
  • Component-based, modular nature: attach the behaviours you want to make your widgets do what you want without having to code (with a variety of templates to get you started)
  • Full support for iOS/Android, Flash (with exception of input – it’s not supported in Flash).
  • Flexible event system
  • Make complex UIs that take only 1 draw call
  • Create your atlases right in the editor, update/modify them at will, or import an atlas from the Texture Packer.
  • Support for lighting, normal mapping, refraction, and more — unleash your creativity!
  • Support for clipped panels with hard or soft edges.
  • An assortment of useful scripts to help you — from changing a button color to dragging an object
  • Simple built-in tweening system.
  • Support for eastern languages with IME input.
  • Clean, short, simple and extensively optimized C# code
  • No DLLs or external resources

The kit comes bundled with 11 step-by-step tutorials, 11 examples, and 3 video tutorials, all of which can be found here without having to buy the kit.

Free Version http://forum.unity3d.com/threads/124032-NGUI-Free-Edition?p=834225

The Free Edition of NGUI can also be used by other developers inside their own Unity Packages – even commercial ones!

HD Video Tutorials

Examples

The 3rd example in particular is very advanced and not only has a system for random item level +quality generation, but also a full Inspector integration for data entry. Even the way you define stats on the items has been simplified – you define all items with stats as if they were max level, then specify actual item range that the created items will be constrained with.

The kit is currently available for $95 up on the Asset Store, as well as directly via PayPal. You can rationalize the purchase like this: will NGUI save you or your developers at least 2 hours of work? If yes, then you have nothing to lose by grabbing a copy.

An alternative Professional edition version can be obtained for $200 that comes with a personal access to NGUI’s GIT repository, giving you access to all of its revision history, the ability to easily merge/diff selective revisions, and always be up to date. It’s very useful for those who plan on modifying NGUI’s source to suit their own needs, but still wish to have a hassle-free way of staying up to date. You can find more information here.

All methods come with quick support via email, forums, and Skype and provide free updates.

For more information, please visit the website.







That looks pretty cool!

Does the it come with the orc and the equipment?

Edit: No longer relevant.

Looks really good ArenMook!

wow, I am excited all over again! I was just looking around at gui stuff and then all of sudden, you came along!

I can’t wait for the release of this. Mind posting a video how you set this up in addition to your step-by-step tutorials please?

Looks great … Will buy as soon as it’s released.

What will be the final list of components?, label, button, scroll list,etc,etc

I’ve never recorded videos before. Can you recommend a program?

Button is not a widget. :slight_smile: Anything can be a button – just attach a component to a collider that has an event listener function such as OnClick, and do whatever you want there. Highlighting a widget? OnHover event, again do what you want there. It’s really simple, and I will explain it thoroughly shortly.

Starting list of unique widgets: UILabel, UISprite, UISlicedSprite (for 9-slicing), and UITiledSprite. Everything else is handled via behaviours.

This kind of design allows 95% of classes to be under 200 lines of code, as opposed to 2000+ lines of code just for a button of a certain unnamed high-priced UI kit. Less code = faster execution and less memory, resulting in a much faster program. Not to mention less headache when it comes to maintenance… but I digress.

I’ll post a writeup shortly.

P.S. There are tutorials that explain how to make a button, scroll view, mouse cursor, tooltips, etc.

I haven’t done it before either, ha. I am on a Mac, and if you are, any of these look promising.

Will the GUI be able to work with different screen resolutions with minimal code changes (ie, iPhone to iPad)?

Yes, you don’t need to change anything. The UI doesn’t stretch horizontally, just vertically. It’s just like any other object in the scene – if you make the screen wider, you can simply see more of the scene. If you wish to anchor something to a specific edge of the screen, you can – use the provided UIAnchor script. Oh, and this script is not limited to UI and can be used to anchor just about anything… if you so desire. Works equally well with both orthographic and perspective-based cameras.

Can you render 3D objects on top of the GUI?

Yup. The UI is just another in-game object. If you are using only one camera and position the UI widget behind a 3D object, that’s how it will be rendered. I recommend using multiple cameras though.

In the demo above the orc is drawn on top of a UI background, and then more UI is drawn on top of the orc. This required the UI to be split up into 2 parts however.

@ArenMook: Looks very cool!

If you are on Mac, I’d go with ScreenFlow. I’m not using it a lot because I don’t need to do a lot of screencapturing - but when I use it, it’s just awesome :slight_smile:

I do have a mac, but I’d be more comfortable doing this in Windows.

Got side-tracked working on the basic documentation. Back to the tutorials…

Looks very promising.

That certain other high priced GUI solution is very good at clipping sprites and text in scroll lists.

Is clipping something that you will support? I’m looking at that 412 triangle panel and that isn’t trivial to clip!

The way you do scroll lists is a bit different with NGUI. It essentially uses Unity’s built-in functionality. It will all be covered in the tutorials. The 412 triangle panel is that many triangles because it uses a UITiledSprite to create its background. It tiles a part of the texture atlas, creating new triangles until it reaches the desired size.

This looks very nice, and very polished. The bonus scripts are a great touch, as well.

Please don’t say render textures :-/ They aren’t great for mobile.

Looks great, I wish EZGui had a UITiledSprite equivalent. I wasn’t complaining about the triangle count, more pointing out that it makes clipping/scissoring more complicated