From 8637f933a9987b4b16dd9725189a1c6ee2685118 Mon Sep 17 00:00:00 2001
From: River Jiang <546213258@qq.com>
Date: Wed, 28 Oct 2020 10:12:05 +0800
Subject: [PATCH] 提交充能条特效修改 Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master

---
 Assets/Scripts/TowerDefense/Level/WaveLineSelMgr.cs |   84 +++++++++++++++++++++++------------------
 1 files changed, 47 insertions(+), 37 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Level/WaveLineSelMgr.cs b/Assets/Scripts/TowerDefense/Level/WaveLineSelMgr.cs
index 6eb06fb..ee552bd 100644
--- a/Assets/Scripts/TowerDefense/Level/WaveLineSelMgr.cs
+++ b/Assets/Scripts/TowerDefense/Level/WaveLineSelMgr.cs
@@ -21,10 +21,10 @@
     /// <summary>
     /// 己方战场的Boss
     /// </summary>
-    public List<GameObject>    selfSkullList;
-    public List<GameObject>    oppoSkullList;
-    protected List<bool>       selfWarningList;
-    protected List<Vector3>    selfSkullUIPos;
+    public List<GameObject> selfSkullList;
+    public List<GameObject> oppoSkullList;
+    protected List<bool> selfWarningList;
+    protected List<Vector3> selfSkullUIPos;
     protected GameObject[] selfWarningUI = new GameObject[5];
 
     /// <summary>
@@ -35,17 +35,17 @@
     /// <summary>
     /// 火攻击效果
     /// </summary>
-    public ParticleSystem skillFirePrefab;
+    public GameObject skillFirePrefab;
 
     /// <summary>
     /// 炸弹攻击效果
     /// </summary>
-    public ParticleSystem skillBombPrefab;
+    public GameObject skillBombPrefab;
 
     /// <summary>
     /// 停止移动的Buff特效.
     /// </summary>
-    public ParticleSystem bufStopMovePrefab;
+    public GameObject bufStopMovePrefab;
 
 
     protected bool zeroState = true;
@@ -67,9 +67,9 @@
         int skullNum = selfSkullList.Count;
         selfWarningList = new List<bool>();
         selfSkullUIPos = new List<Vector3>();
-        for( int ti =0;ti<skullNum;ti ++)
+        for (int ti = 0; ti < skullNum; ti++)
         {
-            if( selfSkullList[ti])
+            if (selfSkullList[ti])
             {
                 Color tzeroc = new Color(1.0f, 1.0f, 1.0f, 0.0f);
                 Material tmat = selfSkullList[ti].GetComponent<MeshRenderer>().material;
@@ -78,22 +78,22 @@
                 tmat.color = tzeroc;
 
                 UnityEngine.Camera sceneCam = ViewPortAdj.instance.cachedCamera;
-                Vector3 centPos = sceneCam.WorldToScreenPoint( oppoSkullList[ti].transform.position );
+                Vector3 centPos = sceneCam.WorldToScreenPoint(oppoSkullList[ti].transform.position);
                 selfSkullUIPos.Add(centPos);
             }
             selfWarningList.Add(false);
         }
-        
+
     }
 
     /// <summary>
     /// 开启BossWaring倒计时.
     /// </summary>
     /// <param name="cdtime"></param>
-    public void StartCountDownBossWarning( float cdtime,int waveline )
+    public void StartCountDownBossWarning(float cdtime, int waveline)
     {
         // 已经显示直接返回.
-        if (selfWarningUI[waveline] != null ) return;
+        if (selfWarningUI[waveline] != null) return;
 
         GameObject cdui = Instantiate(cdBossWarningPrefab);
         GameObject go = GameObject.Find("BattleMainUI");
@@ -109,7 +109,7 @@
         selfWarningUI[waveline] = cdui;
     }
 
-    public void StopCountDownBossWarning( int waveline )
+    public void StopCountDownBossWarning(int waveline)
     {
         Destroy(selfWarningUI[waveline]);
         selfWarningUI[waveline] = null;
@@ -119,12 +119,12 @@
     /// 开启某一条兵线的Boss警告.
     /// </summary>
     /// <param name="warn"></param>
-    public void waveLineBossWarning( int waveline,bool warn)
+    public void waveLineBossWarning(int waveline, bool warn)
     {
         if (selfWarningList[waveline] == warn) return;
         selfWarningList[waveline] = warn;
 
-        if ( warn)
+        if (warn)
         {
             if (selfSkullList[waveline])
             {
@@ -145,7 +145,7 @@
                 seq.Append(tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 1.0f), 0.25f));
             }
 
-            if( oppoSkullList[waveline])
+            if (oppoSkullList[waveline])
             {
                 Material tmat = oppoSkullList[waveline].GetComponent<MeshRenderer>().material;
                 Sequence seq = DOTween.Sequence();
@@ -182,26 +182,36 @@
     /// <summary>
     /// 在某一兵线上播放技能特效
     /// </summary>
-    public void PlayWaveLineEffect( int id )
+    public void PlayWaveLineEffect(int id)
     {
         if ((id >= waveLineList.Count) || (waveLineList[id] == null)) return;
-       
-        ParticleSystem playParticle = Instantiate(skillFirePrefab);
-        playParticle.transform.position = LevelManager.instance.waveManager.GetWaveEndPos( id );
-        playParticle.Play();
+
+        GameObject obj = Instantiate(skillFirePrefab);
+        ParticleSystem ps = obj.GetComponent<ParticleSystem>();
+
+        if (ps == null)
+            ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>();
+        ps.transform.position = LevelManager.instance.waveManager.GetWaveEndPos(id);
+        ps.Play();
+        Destroy(ps.gameObject, ps.main.duration);
     }
 
     /// <summary>
     /// 在战场内某一个位置播放特效
     /// </summary>
     /// <param name="pos"></param>
-    public void PlayBattleAreaBombEffect( Vector3 pos)
+    public void PlayBattleAreaBombEffect(Vector3 pos)
     {
         if (skillBombPrefab == null) return;
-        ParticleSystem playParticle = Instantiate(skillBombPrefab);
-        playParticle.transform.position = pos;
-        playParticle.Play();
 
+        GameObject obj = Instantiate(skillBombPrefab);
+        ParticleSystem ps = obj.GetComponent<ParticleSystem>();
+
+        if (ps == null)
+            ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>();
+        ps.transform.position = pos;
+        ps.Play();
+        Destroy(ps.gameObject, ps.main.duration);
     }
 
 
@@ -209,14 +219,14 @@
     /// 对应兵线发亮.
     /// </summary>
     /// <param name="id"></param>
-    public void waveLineFlash( int id)
+    public void waveLineFlash(int id)
     {
-        if ((id >= waveLineList.Count) || (waveLineList[id] == null) ) return;
+        if ((id >= waveLineList.Count) || (waveLineList[id] == null)) return;
 
         //设置一个DOTween队列
         Sequence flashSeq = DOTween.Sequence();
         Material tmat = waveLineList[id].GetComponent<MeshRenderer>().material;
-        flashSeq.Append( tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 1.0f), 0.1f));
+        flashSeq.Append(tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 1.0f), 0.1f));
         flashSeq.Append(tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 0.2f), 0.08f));
         flashSeq.Append(tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 1.0f), 0.08f));
         flashSeq.AppendInterval(0.05f);
@@ -230,17 +240,17 @@
     /// 对某一条兵线显示选中效果
     /// </summary>
     /// <param name="id"></param>
-    public void fadeWaveline( int id,bool fadeOut,float ftime = 0.3f )
+    public void fadeWaveline(int id, bool fadeOut, float ftime = 0.3f)
     {
         if ((id >= waveLineList.Count) || (waveLineList[id] == null)) return;
         Material tmat = waveLineList[id].GetComponent<MeshRenderer>().material;
-        if( fadeOut)
+        if (fadeOut)
         {
-            tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 1.0f), ftime );
+            tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 1.0f), ftime);
         }
         else
         {
-            tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 0.0f), ftime );
+            tmat.DOColor(new Color(1.0f, 1.0f, 1.0f, 0.0f), ftime);
         }
     }
 
@@ -248,7 +258,7 @@
     /// 某一个位置攻击塔位放下。
     /// </summary>
     /// <param name="pos"></param>
-    public void attackTowerFixed( int pos)
+    public void attackTowerFixed(int pos)
     {
         if ((pos >= waveLineList.Count) || (waveLineList[pos] == null)) return;
 
@@ -265,17 +275,17 @@
     // Update is called once per frame
     void Update()
     {
-        if( UnityEngine.Input.GetKeyDown( KeyCode.G ))
+        if (UnityEngine.Input.GetKeyDown(KeyCode.G))
         {
             //PlayWaveLineEffect(2);
             /*ParticleSystem MoveStopEffect = Instantiate(WaveLineSelMgr.instance.bufStopMovePrefab);
             MoveStopEffect.transform.position = this.transform.position;
             MoveStopEffect.Play();*/
         }
-        if( UnityEngine.Input.GetKeyDown( KeyCode.V ) )
+        if (UnityEngine.Input.GetKeyDown(KeyCode.V))
         {
             PlayBattleAreaBombEffect(this.battleAreaObject.transform.position);
         }
-        
+
     }
 }

--
Gitblit v1.9.1