Objects to fit on the screen

Hello guys/girls I need a little bit of help here.

I had placed on the top of the screen some items that you can found them on the ground like weapons etc.

The problem is that when they are less or equal to 3 they can fit on the screen, but if they are more than 3 they just go trough borders.

Here is an example to be more clear
[29286-безымянный.png|29286]

I need a way to scale them down or to scale them just a little bit and to put on two rows.

Any help will be appreciated.

Here is my code to instantiate them

public void CreateItems(float i, int numberOfObjects, float iterator, float offsetX, float yPosition, GameObject itemPrefab)
	{
		numberOfObjects = objectScript.ItemsNumber;
		string letter = objectScript.ItemsColor;
		GameObject cube = null;

		switch(letter)
		{
		case "B":
			cube = Item_bbg;
			break;
		
		case "G":
			cube = Item_gbg;
			break;
		
		case "O":
			cube = Item_obg;
			break;

		case "P":
			cube = Item_pbg;
			break;
		case "R":
			cube = Item_rbg;
			break;
		case "Y":
			cube = Item_ybg;
			break;

		default: break;
		}
		//impar
		if(numberOfObjects % 2 != 0)
		{
			iterator = -numberOfObjects +1;
			offsetX = 2f;

				for(i = iterator; i < numberOfObjects  ; i += offsetX)
				{
					GameObject clone = Instantiate (cube, new Vector3 (i , yPosition, -1), Quaternion.identity) as GameObject;
					prefabs.Add(clone);
				}
		}
		
		//par
		else 
		{
			iterator = - numberOfObjects +1;
			offsetX = 2.0f;
		    if(numberOfObjects !=0 )
			{
				for(i = iterator; i < numberOfObjects ; i += offsetX)
				{
					GameObject clone = Instantiate (cube, new Vector3 (i , yPosition, -1), Quaternion.identity) as GameObject;
					prefabs.Add(clone);
				}
			}
		}

		// Check for exceptions case
		if(numberOfObjects == 0)
		{
			return;
		}

	}

if you are using an orthographic camera i would suggest you to create a script in which you technically calculate the width of the screen like that

left = Camera.main.ScreenToWorldPoint(new Vector3(0,"put any height you want", Camera.main.transform.position.z));
right = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width,"same height here", Camera.main.transform.position.z));


List<itemsIwannaInclude> myItems = new List<itemsIwannaInclude>();
  

step =(Mathf.Abs(left.x) + Mathf.Abs(right.x)/ (myItems.Count);


float ourScale = ((step * myItems.Count) / (tile.renderer.bounds.size.x * myItems.Count));
   
for(int i = 0; i < myItems.Count; i ++)
{
    myItems*.transform.localScale = new Vector3(ourScale ,ourScale ,"whatever value");*

}

hope that helps.

Set the position of the first 3 on the screene, and if you have more you can just slide to view others,using NGUI or something write by you.Scaling is not a good idea.