wangguan
2020-10-22 74daf5509be4fc140fd1bdb6d4df5f1c1002e368
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);