From af03e1ad530c4a8ea2423a7f5ed6b5533a8c308f Mon Sep 17 00:00:00 2001
From: liuzhiwei <liuzhiwei@qq.com>
Date: Sat, 31 Oct 2020 17:27:02 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs |   42 ++++++++++++++++++++++++++----------------
 1 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
index 714ae8f..0780712 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,15 +44,19 @@
 
         private void OnEnable()
         {
-            isCompleted = false;
             SelectedIndex = -1;
 
             for (int i = 0; i < IconList.Count; ++i)
             {
                 IconList[i].Reset();
             }
+        }
 
-            EndlessMaskUI.instance?.Show();
+        
+        private void OnDisable()
+        {
+            if (effectObj != null)
+                Destroy(effectObj);
         }
 
         public void OnClick(int index)
@@ -79,16 +78,26 @@
 
         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>
@@ -108,6 +117,7 @@
 
         public void ShowBuffUI()
         {
+            EndlessMaskUI.instance.Show();
             gameObject.SetActive(true);
         }
 

--
Gitblit v1.9.1