Ok right now I have a vague beginnings of my UI. The buttons get added to the scroll area and then track each button clicked, in order to open a GUI.Window item which I haven't implemented yet.
void OnGUI()
{
AutoItemLayout();
for (int i = 0; i < buttons.Count; i++)
{
if (buttons*)*
*{*
*//do something*
*}*
*}*
*}*
*void AutoItemLayout()*
*{*
*GUI.enabled = windowNotOpen;*
*GUILayout.BeginArea(new Rect(0, 0, SHOP_WIDTH, SHOP_HEIGHT));*
*GUI.Box(new Rect(0, 0, SHOP_WIDTH, SHOP_HEIGHT), "");*
*category = GUI.Toolbar(new Rect(5, 5, SHOP_WIDTH - 10, 85), category, categoryName);*
*GUI.Box(new Rect(5, 95, (SHOP_WIDTH - 10), (SHOP_HEIGHT - 100)), "");*
*scrollViewVector = GUI.BeginScrollView(new Rect(10, 100, (SHOP_WIDTH - 20), (SHOP_HEIGHT - 110)), scrollViewVector, new Rect(0, 0, 0, scrollHeight));*
*if (category != currentCategory)*
*{*
*buttons.Clear();*
*switch (category)*
*{*
*case 0:*
*displayItems = clothes;*
*currentCategory = 0;*
*break;*
*case 1:*
*displayItems = playground;*
*currentCategory = 1;*
*break;*
*case 2:*
*displayItems = music;*
*currentCategory = 2;*
*break;*
*case 3:*
*displayItems = zopet;*
*currentCategory = 3;*
*break;*
*default:*
*Debug.Log("SHOP TOOLBAR BROKE");*
*break;*
*}*
*setUpShopLayout();*
*for (int i = 0; i < buttonPositions.Count; i++)*
*{*
<em>buttons.Add(GUI.Button(buttonPositions_, displayItems*.ItemName));*_</em>
<em>_*}*_</em>
<em>_*}*_</em>
<em>_*GUI.EndScrollView();*_</em>
<em>_*GUILayout.EndArea();*_</em>
<em>_*GUI.enabled = true;*_</em>
<em>_*}*_</em>
<em>_*public void setUpShopLayout()*_</em>
<em>_*{*_</em>
<em>_*buttonPositions.Clear();*_</em>
<em>_*count = 0;*_</em>
<em>_*noExtraItems = true;*_</em>
<em>_*total = displayItems.Count;*_</em>
<em><em>*lessThan = (int)(SHOP_WIDTH - 35) / (buttonWidth); ;*</em></em>
<em><em><em>buttonBuffer = (int)(SHOP_WIDTH - 35 - (buttonWidth * lessThan)) / lessThan;</em></em></em>
<em><em>_scrollHeight = ((total / lessThan) * (buttonHeight + buttonBuffer));_</em></em>
<em>_*numrows = total / lessThan;*_</em>
<em>_*if ((total % lessThan) > 0)*_</em>
<em>_*{*_</em>
<em>_*extraItems = total % lessThan;*_</em>
<em>_*numrows++;*_</em>
<em>_*scrollHeight = scrollHeight + (buttonHeight + buttonBuffer);*_</em>
<em>_*noExtraItems = false;*_</em>
<em>_*}*_</em>
<em>_*for (int i = 0; i < (numrows); i++)*_</em>
<em>_*{*_</em>
<em>_*if ((i + 1) < numrows || noExtraItems)*_</em>
<em>_*{*_</em>
<em>_*for (int j = 0; j < lessThan; j++)*_</em>
<em>_*{*_</em>
<em>_*name = displayItems[count].ItemName;*_</em>
<em><em>_buttonPositions.Add(new Rect((j * (buttonWidth + buttonBuffer)), (i * (buttonHeight + buttonBuffer)), buttonWidth, buttonHeight));_</em></em>
<em>_*count++;*_</em>
<em>_*}*_</em>
<em>_*}*_</em>
<em>_*else*_</em>
<em>_*{*_</em>
<em>_*for (int j = 0; j < extraItems; j++)*_</em>
<em>_*{*_</em>
<em>_*name = displayItems[count].ItemName;*_</em>
<em><em>_buttonPositions.Add(new Rect((j * (buttonWidth + buttonBuffer)), (i * (buttonHeight + buttonBuffer)), buttonWidth, buttonHeight));_</em></em>
<em>_*count++;*_</em>
<em>_*}*_</em>
<em>_*}*_</em>
<em>_*}*_</em>
<em>_*}*_</em>
<em>_*```*_</em>
<em>_*<p>That's the main chunk of my code. However the loop, that adds the GUI.Button to the buttons array, is infinity adding buttons outside of the if(category != currentCategory) statement, and inside the if statement it adds the correct number of buttons, however they do not appear on the UI. Any ideas?</p>*_</em>
<em>_*<p>Thanks,*_</em>
<em>_*Hans*_</em>
<em>_*Unity Newb</p>*_</em>