public static ListPanelUI Create(IEnumerable <ListUIOption> options, string title, string description, string button, int gold, PauseGameUI parent, bool closeOnComplete = false, bool closeUIOnComplete = false) { var instance = Instantiate(UIManager.ListPanelUI); instance.title.text = title; instance.description.text = description; //this.button.text = button; instance.gold.text = $"Gold: {gold}"; foreach (var option in options) { var clone = Instantiate(instance.prefab, instance.content); if (closeOnComplete || closeUIOnComplete) { var action = new Action(option.Action); if (closeUIOnComplete) { action += () => parent.CloseUI(); } if (closeOnComplete) { action += () => instance.CloseUI(); } clone.Initialize(option.Description, action.Invoke, option.IsEnabled); } else { clone.Initialize(option.Description, option.Action, option.IsEnabled); } instance.currentOptions.Add(option.Description, clone); } return(instance); }