[Released] NGUI Infinite Pickers - A complete picker framework

NGUI Infinite Pickers 1.5
Asset Store Link

Video of the new WYSIWYG workflow

v1.0 videos ( not WYSIWYG but similar workflow )
Video - setting up a text picker
Video - forwarding picker events
Video - multiple widgets per picker element

Requires the paid version of NGUI 3.x. NGUI 2.x compatible version available upon request.

-A complete framework - pickers are entirely customizable.

-Adjust widgets spacing, direction, pivot, color right in the editor - NGUI inspired WYSIWYG workflow ( new in 1.1 )

-Momentum, auto-recenter

-Recycles the minimum amount of objects - mobile friendly ( no instantiate or destroy )

-Text, number, sprite, and date pickers

-DateTime compound picker prefab included - set the date and time to now, or retrieve the selected date and time as a System.DateTime struct - supports 6 languages

-Expandable picker included - less space, more choice

-Horizontal and vertical

-Scroll wheel

-Insert new elements in a picker dynamically

-Multiple, independent UISprite and UILabel widgets per picker element supported

-Clean, documented C# code

-IPForwardPickerEvents forwards OnSelectionStart, OnSelectionChange, OnRecenter and OnPickerStopped events via SendMessage : inspector friendly!

-Whether you need 3, 5 or 11 visible elements, no need to build them all in the scene - Infinite Pickers will add the missing ones automaticaly when playing

Please note that the example pickers provided are not meant to be used in actual projects, but to serve as templates for your much nicer designs.

Future features
The following features are planned - drop a line to let me know which one I should do first.

-WYSIWYG editing through a custom inspector - Done in 1.1
-More languages for the date picker
-A nice, usable, iOS styled picker ( pickers in the demo scene use default NGUI assets )***
-Other features, do suggest.

*** Needs a designer - contact me if you feel up to the task [PAID JOB]

This is what I need right now! :slight_smile: any eta on the release and price?

Cheers, Roy

Hi Roy,

Price : 15$

Making tutorial videos now.

I’ll try to submit before tomorrow noon, if I can’t make it, it’ll have to be in a week ( holidays coming up ).

Cheers,

Gregzo

I’d love a better UIInput. So you can copy/paste into it, move the cursor, highlight text etc just like a very basic text field. That’s one thing NGUI does really lack. If you got some extra time maybe you could create that!

Btw these widgets are really nice.
I spent like 5 minutes scrolling the dates but it doesn’t come to an end. what.

Hi Zeblote,

UIInput “enhanced” would be a totally different project, I’m trying to stay focused on delivering nice functional pickers here!
I’ve seen a video, linked in the NGUI forum, of such an asset : blinking carat, click to reposition in UIInput, etc… Maybe it’s out there already?

About the date widget in Infinite Pickers : that’s the whole point, dates are dynamically created using System.DateTime. Choose a min date, a max date, an init date ( including the user’s “now” ), and that’s what your picker will contain. For the same reason, it’s really trivial to support more languages. Ask for one, and I’ll include it! I suspect it won’t handle arabic and chinese so well…

Submitted and uploaded the tutorial videos - see the first post of this thread.

Any update on the availability of this plugin? Looks great, thanks!

Hi Kyle,
The asset is pending review. Hopefully any day now.

Cheers,

Gregzo

Let’s hope it will be reviewed soon :stuck_out_tongue:

Yep, hope.

Updated the OP with a “future features section” : let me know what I should prioritize!

Gregzo

Released!

Bought!

aaaaaaaaaaaaaaand (sorry)

NullReferenceException: Object reference not set to an instance of an object
IPCycler.Init () (at Assets/NGUIPickers/Scripts/b_OtherComponents/IPCycler.cs:124)
IPPickerBase.Setup () (at Assets/NGUIPickers/Scripts/d_Internal/IPPickerBase.cs:61)
IPPickerBase.Awake () (at Assets/NGUIPickers/Scripts/d_Internal/IPPickerBase.cs:49)

on the demo, looks to be in the NumberPicker gameObject
Looks to be the objects under the Cycler are missing Labels.

EDIT:
Fixed it. The problem is the NumberPicker in the demo is broken. If you replace it with a prefab NumberPicker it works fine.

EDIT2:
Something weird going on. If I replace it with the prefab it works. But close the scene (after saving) and reopen it the same error then pops up again on the NumberPicker.

ty!

Hi Sonicviz,

Many thanks for buying!

You’re experiencing a script execution order bug that evaded my radar, apoligies. The fix is super easy :

In Scripts/OtherComponents/IPCycler.cs, line 79, replace _panel = _draggablePanel.panel; with _panel = gameObject.GetComponent ( typeof ( UIPanel ) ) as UIPanel;

UIDraggablePanel grabs it’s reference to UIPanel panel in Awake, so if it hasn’t executed yet when IPCycler’s Awake happens, null ref…

Incredibly, I never once experienced the null ref when working on this. Call it bad good luck!

Update submitted.

Cheers,

Gregzo

Fixed. ty!

Update just accepted a minute ago, fixes the script execution order bug. Thanks Unity for the fast process!

Thanks to all of you who bought NGUI Infinite Pickers this week-end, I hope you find the asset useful.

Good news : after a busy week-end, I’m getting ready to submit v1.1, which features custom inspectors and WYSIWYG editing right in the inspector. It should tremendously improve the workflow, making it more NGUI like.

Cheers,

Gregzo

It would be great if you’d add an option for the picker to work like the one in Infinity Blade: http://www.youtube.com/watch?v=TtfsStjS9_4 , with:

-horizontal and vertical swiping between items/lists
-non-looping list
-integrate a scroll bar for PC use
-scale, opacity highlighting

Hi Boji,

Thanks for the suggestion, I’ll see what I can do for the next update.
If others request the same, I’ll be sure to include these features.

In the meantime, please note that you IPForwardPickerEvents provides SendMessage callbacks for when the picker starts to move, stops to move, and when the center element changes, which you can use to scale or fade items. Not exactly as in Infinity Blade, though…

Cheers,

Gregzo

Sounds like great enhancement.

A pop up version triggered by button would be useful too.

ty!

Hi SonicViz,

By pop up version, do you mean that the picker should just appear at the press of a button ? Or scale into existence ? Or fade from 0 ?

If it just needs to appear, the next update has you covered. Simply activate / deactivate the picker with NGUITools.SetActive.