From 63133cf5403a9d7fbe3811d20c3d24f26a752449 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Thu, 22 Oct 2020 16:06:35 +0800 Subject: [PATCH] 无尽模式,添加法阵展示和结算界面滑动列表 --- Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs | 60 ++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 32 insertions(+), 28 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs index cc26693..50cadb4 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs @@ -14,11 +14,9 @@ { public class EndlessBuffSelect : Singleton<EndlessBuffSelect> { - public Text Prompt; - public List<SelectBuffIcon> IconList; - public List<Sprite> SpriteList; + private string iconPath = "UI/Endless/BuffIcon/BuffIcon_"; /// <summary> /// buff是否选中完成 @@ -27,7 +25,12 @@ public event Action<int> BuffSelectCompleted; - private int SelectedIndex; + /// <summary> + /// 当前选择的索引,-1表示还未选中其中一个 + /// </summary> + private int SelectedIndex = -1; + + public Button SelectBtn; // Start is called before the first frame update private void Start() @@ -36,37 +39,45 @@ { IconList[i].OnSelectBuffCompleted += OnClick; } + + SelectBtn.onClick.AddListener(OnClickSelectBtn); } private void OnEnable() { isCompleted = false; - Prompt.text = "点击选择buff"; - + SelectedIndex = -1; + for (int i = 0; i < IconList.Count; ++i) { - IconList[i].SetIcon(SpriteList[i]); - IconList[i].SetState(EndlessBuffSelectState.Normal); + IconList[i].Reset(); } } public void OnClick(int index) { - if (isCompleted) return; + // 如果点击同一个直接返回 + if (index == SelectedIndex) return; - isCompleted = true; + // 如果已经选择过了,设置一个之前选择的item + if (SelectedIndex != -1) + IconList[SelectedIndex].SetState(false); + SelectedIndex = index; - Prompt.text = "选择buff成功"; + IconList[index].SetState(true); + } - for (int i = 0; i < IconList.Count; ++i) - { - if (index == i) - IconList[i].SetState(EndlessBuffSelectState.Selected); - else - IconList[i].SetState(EndlessBuffSelectState.Unselected); - } + /// <summary> + /// 点击了选择按钮 + /// </summary> + public void OnClickSelectBtn() + { + if (SelectedIndex == -1) return; - StartCoroutine(DelayToClose()); + HideBuffUI(); + + if (BuffSelectCompleted != null) + BuffSelectCompleted(SelectedIndex); } public void ShowBuffUI() @@ -79,19 +90,12 @@ gameObject.SetActive(false); } - private IEnumerator DelayToClose() - { - yield return new WaitForSeconds(0.5f); - HideBuffUI(); - - if (BuffSelectCompleted != null) - BuffSelectCompleted(SelectedIndex); - } - public void Refresh(List<EndlessBuffConfig> list) { for (int i = 0; i < IconList.Count; ++i) { + IconList[i].SetIcon(list[i].Config.image); + IconList[i].SetQuality(list[i].Config.rare); IconList[i].SetName(list[i].Config.name); IconList[i].SetEffect(list[i].Config.brief); IconList[i].SetRare(list[i].Config.rare); -- Gitblit v1.9.1