chenxin
2020-12-25 adb0dae8a82a7eabb4e686bc0e83c8859bf6445f
Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
@@ -16,13 +16,6 @@
    {
        public List<SelectBuffIcon> IconList;
        private string iconPath = "UI/Endless/BuffIcon/BuffIcon_";
        /// <summary>
        /// buff是否选中完成
        /// </summary>
        private bool isCompleted;
        public event Action<int> BuffSelectCompleted;
        /// <summary>
@@ -32,9 +25,11 @@
        public Button SelectBtn;
        public GameObject EffectObj;
        public GameObject EffectPrefabObject;
        private Vector3[] effectPosArr = { new Vector3(-21.6f, 73.4f, 5.5f), new Vector3(0, 73.4f, 5.5f), new Vector3(21.6f, 73.4f, 5.5f) };
        private GameObject effectObj;
        private Vector3[] effectPosArr = { new Vector3(-21.6f, 0, 6.6f), new Vector3(0, 0, 6.6f), new Vector3(21.6f, 0, 6.6f) };
        // Start is called before the first frame update
        private void Start()
@@ -49,7 +44,6 @@
        private void OnEnable()
        {
            isCompleted = false;
            SelectedIndex = -1;
            for (int i = 0; i < IconList.Count; ++i)
@@ -57,7 +51,12 @@
                IconList[i].Reset();
            }
            EndlessMaskUI.instance.Show();
        }
        private void OnDisable()
        {
            if (effectObj != null)
                Destroy(effectObj);
        }
        public void OnClick(int index)
@@ -67,28 +66,37 @@
            // 如果已经选择过了,设置一个之前选择的item
            if (SelectedIndex != -1)
            {
                IconList[SelectedIndex].SetState(false);
            }
            SelectedIndex = index;
            IconList[index].SetState(true);
            PlayEffect();
            //PlayEffect();
        }
        private void PlayEffect()
        {
            EffectObj.transform.localPosition = effectPosArr[SelectedIndex];
            ParticleSystem ps = EffectObj.transform.GetChild(0).GetComponent<ParticleSystem>();
            if (effectObj == null)
            {
                effectObj = Instantiate(EffectPrefabObject);
                GameObject particleSystemObject = GameObject.Find("ParticleSystemObject");
                effectObj.transform.SetParent(particleSystemObject.transform, false);
                effectObj.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
            }
            effectObj.transform.localPosition = effectPosArr[SelectedIndex];
            ParticleSystem ps = effectObj.transform.GetChild(0).GetComponent<ParticleSystem>();
            ps.Play();
        }
        private void StopEffect()
        {
            ParticleSystem ps = EffectObj.transform.GetChild(0).GetComponent<ParticleSystem>();
            ps.Stop();
            ps.Clear();
            if (effectObj != null)
            {
                ParticleSystem ps = effectObj.transform.GetChild(0).GetComponent<ParticleSystem>();
                ps.Stop();
                ps.Clear();
            }
        }
        /// <summary>
@@ -100,7 +108,12 @@
            int index = SelectedIndex;
            AudioSourceManager.Ins.Play(AudioEnum.UI);
            HideBuffUI();
            IconList[index].Fly();
            EndlessRandomTower.instance.SetCountDown(true,true);
            if (BuffSelectCompleted != null)
                BuffSelectCompleted(index);
@@ -108,7 +121,9 @@
        public void ShowBuffUI()
        {
            EndlessMaskUI.instance.Show();
            gameObject.SetActive(true);
            AudioSourceManager.Ins?.Play(AudioEnum.ChooseBuff);
        }
        public void HideBuffUI()
@@ -127,6 +142,7 @@
                IconList[i].SetName(list[i].Config.name);
                IconList[i].SetEffect(list[i].Config.brief);
                IconList[i].SetRare(list[i].Config.rare);
                IconList[i].SetIsGold(list[i].EffectType == EndlessBuffEffectType.GoldAdd);
            }
        }
    }