How can I instantiate multiple objects with a loop and have them be different

I have a few sprites which will contain stars, a button for playing the level which will be play or locked.
I have some variables for each level with playerprefs, one that is an int that will contain 1-3 depending on stars that you have reached per level
and a variable which is a bool that checks if the level is completed or not, if it is the next level will get unlocked.

Now what I’m in the need for help is how I would make a level select with sprites, I already made this with a GUI but I dont know how to do this
with text meshes and if i should have them set inactive and set them active or instantiate them and how I can make sometime so I can scroll
through them.

My terrible example in Unity’s GUI, but it gives an idea of what I’m wanting to do:

alt text

You’re a little unclear on the breakdown here… but the gist would be…

//in C#
for (int i = 0; i < num_children; i++) {
    GameObject g = Instantiate(childObj, position, rotation);
    g.GetComponet<TextMesh>().text = custom_text*;*

YourScript script = g.GetComponent();
script.stars = level //or something similar
}
That should generate multiple children with custom text (maybe from an array?) and customize the number of stars. Without more details on implementation, I can not be more specific.