From daad3d9658dcb695570d047b9fc5152a16f3fa0b Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Thu, 26 Nov 2020 21:14:13 +0800
Subject: [PATCH] 充能BUG

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

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
index 714ae8f..b036506 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,13 @@
                 IconList[i].Reset();
             }
 
-            EndlessMaskUI.instance?.Show();
+            AudioSourceManager.Ins?.Play(AudioEnum.BuffAppear);
+        }
+
+        private void OnDisable()
+        {
+            if (effectObj != null)
+                Destroy(effectObj);
         }
 
         public void OnClick(int index)
@@ -67,28 +67,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 +108,8 @@
 
             int index = SelectedIndex;
 
+            AudioSourceManager.Ins.Play(AudioEnum.UI);
+
             HideBuffUI();
 
             if (BuffSelectCompleted != null)
@@ -108,6 +118,7 @@
 
         public void ShowBuffUI()
         {
+            EndlessMaskUI.instance.Show();
             gameObject.SetActive(true);
         }
 

--
Gitblit v1.9.1