| | |
| | | /// <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> |
| | |
| | | /// <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; |
| | |
| | | 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; |
| | |
| | | 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"); |
| | |
| | | selfWarningUI[waveline] = cdui; |
| | | } |
| | | |
| | | public void StopCountDownBossWarning( int waveline ) |
| | | public void StopCountDownBossWarning(int waveline) |
| | | { |
| | | Destroy(selfWarningUI[waveline]); |
| | | selfWarningUI[waveline] = null; |
| | |
| | | /// 开启某一条兵线的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]) |
| | | { |
| | |
| | | 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(); |
| | |
| | | /// <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); |
| | | } |
| | | |
| | | |
| | |
| | | /// 对应兵线发亮. |
| | | /// </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); |
| | |
| | | /// 对某一条兵线显示选中效果 |
| | | /// </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); |
| | | } |
| | | } |
| | | |
| | |
| | | /// 某一个位置攻击塔位放下。 |
| | | /// </summary> |
| | | /// <param name="pos"></param> |
| | | public void attackTowerFixed( int pos) |
| | | public void attackTowerFixed(int pos) |
| | | { |
| | | if ((pos >= waveLineList.Count) || (waveLineList[pos] == null)) return; |
| | | |
| | |
| | | // 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); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |