Add a dropdown listbox to your UI canvas.
A menu item is added to easily instantiate the list box. You can populate it with an array of strings and/or sprites.
The appearance listbox can be configured with the unity UI system. It has separate UI objects for the closed state of the listbox, the opened state, the options and the highlighted option.
You can use large option arrays if you want, because only the visible options are represented by gameobjects who's display values are swapped as you scroll through the listbox.
All C# source code and demo scene included. For a guide to use the programming interface or on how to change the appearance, use the menu on the left side of this webpage.
You can run the demo here
To obtain the Listbox package, go to the Unity Asset Store
This package only works with the new Unity UI system, not with OnGUI()