Level selection menu (grid) and scrolling it!!

Hello friends, thanks for your answerss on previous questions.
We are stuck at a very critical phase of our game right now.
The question is: How to dynamically create a level selection screen something similar to angry birds.
We are working on a game which has approx 40 levels per stage.

We want to make a vertical scrolling level selection screen, with about 5 levels per row. So a matrix is formed of (5x8). At any time the screen will only show 20 of these levels, so you would have to slide up or down to see the rest of the levels, just like any normal scroll view list works.

The question here is, first of all, how should we dynamically create the level selection screen. That is, the 40 level tiles should BE CREATED via script, and not manually by copy pasting 40 images in the heirarchy.
This is a very big problem, as going forward with our game we would like to create atleast 200-300 levels (it is a simple board based puzzle game).

Also, once this issue is solved, another important question is how to make the scroll view work. I have UIToolkit, but am unable to make head or tail of how to do the scrollview functionality.

Please help us out. Here is the current version of the level selection screen.

[15126-screenshot+(312).png|15126]

As you can see, there are 20 tiles, and all 20 represent a level. I have manually placed all these tiles by duplicating the first one. And the only way I see this to work now is to manually write the level nos, etc ontop of them via guiText. This method is SERIOUSLY wrong and I know this, but I wish to know the professional or rather the more sensible way to do this.

Thanks!

Best way to do this is to make an for loop.

Texture2D[] repre; //Array of textures displayed on button
String[] lvlNames; //Array of levels(scenes) names
int Y = 0;
int X;

for(int i = 0; i < repre.Length; i++)
{
 if(GUI.Button(new Rect(5, Y, 50, 50), repre*))*

{
Application.LoadLevel(lvlNames*);*
}
y += 55;
}
Its drawing all buttons in one column, if you want more rows, just add more fors in that for. You have to manually calculate how many rows/cols you want.
Every ‘for’ added in this ‘for’ will give you one more row.
Hope that helps
Paul