private void ShowLevelSelectUI() { ListUIParams uiparams = new ListUIParams(); uiparams.Title = "Select a Level"; List <string> levels = LevelLoader.GetAllLevels(); for (int i = 0; i < levels.Count; i++) { uiparams.Options.Add(levels[i]); } uiparams.Callback = OnLevelSelected; ListUI ui = Instantiate <ListUI>(ListUITemplate); ui.Create(ListTemplateTextOnly, uiparams); Vector3 uiPos = new Vector3(0.0F, 5.0F, -8.0F); Vector3 uiForward = (uiPos - TargetManager.transform.position).normalized; ui.transform.gameObject.SetActive(true); ui.transform.gameObject.transform.position = uiPos; ui.transform.gameObject.transform.forward = uiForward; }
private void InitializeGameplayUISettings() { ListUIParams TurretSelectParams = new ListUIParams(); TurretSelectParams.Title = "Select Turret"; for (int i = 0; i < LevelDesc.AllowedTurrets.Count; i++) { TurretSelectParams.Options.Add(LevelDesc.AllowedTurrets[i]); Turret t = LevelLoader.LookupTurret(LevelDesc.AllowedTurrets[i]); TurretSelectParams.Prices.Add(t.Cost.ToString()); } TurretSelectParams.Callback = OnTurretSelected; GameplayUI.TurretSelectUIParams = TurretSelectParams; ListUIParams TurretOptionsParams = new ListUIParams(); TurretOptionsParams.Title = "Turret Options"; TurretOptionsParams.Callback = OnTurretOptionSelect; GameplayUI.TurretOptionUIParams = TurretOptionsParams; GameplayUI.TurretManagerInstance = Turrets; }
public void Create(GameObject listTemplate, ListUIParams Params) { Text title = gameObject.GetComponentInChildren <Text>(); title.text = Params.Title; VerticalLayoutGroup layoutGroup = gameObject.GetComponentInChildren <VerticalLayoutGroup>(); GameObject listGroup = null; foreach (Transform child in layoutGroup.transform) { listGroup = child.gameObject; } List <string> ListOptions = new List <string>(Params.Options); for (int i = 0; i < Params.Options.Count; i++) { GameObject listItem = Instantiate(listTemplate); Text[] textFields = listItem.GetComponentsInChildren <Text>(); Text listText = textFields[0]; listText.text = Params.Options[i]; Text priceText = null; if (textFields.Length > 1) { priceText = textFields[1]; priceText.text = Params.Prices[i]; } Button listButton = listItem.GetComponent <Button>(); string optionSelectedString = Params.Options[i]; int index = i; listButton.onClick.AddListener(() => { bool leaveActive = Params.Callback(index, optionSelectedString, Params.Context); if (!leaveActive) { this.transform.gameObject.SetActive(false); this.enabled = false; } }); listItem.transform.parent = listGroup.transform; } }