From bac1e673b54b1e5f773c4bd098e1b4fe8981c62e Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Tue, 27 Oct 2020 20:39:17 +0800 Subject: [PATCH] Merge branch 'master' of ssh://172.16.1.52:8091/GemBattle --- 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