public void ShowCampaigns() { HideCampaigns(); CampaignData campaignData = Assets.Get(Assets.CampaignDataSets.Default); int count = 0; List <Button> buttons = new List <Button>(); for (int i = 0; campaignData.campaignSets.Count > i; i++) { int iIndex = i; for (int j = 0; campaignData.campaignSets[i].campaignDefinitions.Count > j; j++) { int jIndex = j; buttons.Add(new Button("Campaign", 10, 3, container, "CampaignButton", Enter: (Button butt) => butt.SetColor(Color.green), Stay: (Button butt) => { if (Input.GetMouseButtonDown(0)) { selectedCampaign = campaignData.GetCampaignSet(iIndex).campaignDefinitions[jIndex]; selectedCampaignIndex = buttons.IndexOf(butt); } }, Exit: (Button butt) => butt.SetColor(Color.white))); count++; } } Add(_campaigns = new Layout("Campaigns", 20, (count > 1 ? count / 2 : 1) * 3, 0, 0.2f, count > 1 ? count / 2 : 1, container)); _campaigns.Add(buttons, true); _campaigns.SetViewportPosition(new Vector2(0.5f, 0.25f)); _campaigns.SetPosition(_campaigns.position + (Vector3.left * _campaigns.width * 0.5f) + (Vector3.forward * _campaigns.height * 0.5f)); }