From 68b153f681713e4831d67b0cf56a9b302e3635e9 Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Thu, 10 Dec 2020 20:25:48 +0800
Subject: [PATCH] 未上阵塔动画

---
 Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs |   52 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
index 714ae8f..51ccd43 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
+++ b/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,36 @@
 
             // 如果已经选择过了,设置一个之前选择的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,6 +107,8 @@
 
             int index = SelectedIndex;
 
+            AudioSourceManager.Ins.Play(AudioEnum.UI);
+
             HideBuffUI();
 
             if (BuffSelectCompleted != null)
@@ -108,7 +117,9 @@
 
         public void ShowBuffUI()
         {
+            EndlessMaskUI.instance.Show();
             gameObject.SetActive(true);
+            AudioSourceManager.Ins?.Play(AudioEnum.ChooseBuff);
         }
 
         public void HideBuffUI()
@@ -127,6 +138,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);
             }
         }
     }

--
Gitblit v1.9.1