From 56f231f1f6523d7920cf32f033f9bb6f0015550f Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Wed, 28 Oct 2020 18:05:11 +0800 Subject: [PATCH] Merge commit '8380b3c000a04bd9bf6dfc11fd8337c1563ad265' into master --- Assets/Scripts/TowerDefense/Agents/Agent.cs | 95 ++++++++++++++++++++++++----------------------- 1 files changed, 48 insertions(+), 47 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Agents/Agent.cs b/Assets/Scripts/TowerDefense/Agents/Agent.cs index d7e7342..88afea5 100644 --- a/Assets/Scripts/TowerDefense/Agents/Agent.cs +++ b/Assets/Scripts/TowerDefense/Agents/Agent.cs @@ -402,39 +402,12 @@ { MoveStopTime = binfo.last / 1000; - if (WaveLineSelMgr.instanceExists) + if (!isFrost) { - // 播放特效: - if (WaveLineSelMgr.instance.bufStopMovePrefab == null) return; + isFrost = true; - // 正在播放的话,直接返回. - if (MoveStopEffect) - return; - - GameObject obj = Instantiate(WaveLineSelMgr.instance.bufStopMovePrefab); - MoveStopEffect = obj.GetComponent<ParticleSystem>(); - - if (MoveStopEffect == null) - MoveStopEffect = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - MoveStopEffect.transform.position = this.position; - MoveStopEffect.Play(); - } - else if (EndlessWaveLineManager.instanceExists) - { - // 播放特效: - if (EndlessWaveLineManager.instance.bufStopMovePrefab == null) return; - - // 正在播放的话,直接返回. - if (MoveStopEffect) - return; - - GameObject obj = Instantiate(EndlessWaveLineManager.instance.bufStopMovePrefab); - MoveStopEffect = obj.GetComponent<ParticleSystem>(); - - if (MoveStopEffect == null) - MoveStopEffect = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - MoveStopEffect.transform.position = this.position; - MoveStopEffect.Play(); + if (FrostParticle != null) + FrostParticle.Play(); } } @@ -492,26 +465,30 @@ timeToPoisonHurt = 0; bShieldBreak = false; bInDeathAct = false; + + StopFrostParticle(); //this.SetTargetableMatColor(Color.white); // 删除当前停止特效和状态. if (MoveStopTime > 0) - { - if (MoveStopEffect) - { - MoveStopEffect.Stop(); - Destroy(MoveStopEffect); - MoveStopEffect = null; - } - MoveStopTime = 0.0f; - } // 停止DoTween动画. this.transform.DOKill(); Poolable.TryPool(gameObject); + } + + private void StopFrostParticle() + { + if (isFrost) + { + isFrost = false; + + if (FrostParticle != null) + FrostParticle.Stop(); + } } /// <summary> @@ -734,12 +711,7 @@ MoveStopTime -= Time.deltaTime; if (MoveStopTime <= 0) { - if (MoveStopEffect) - { - MoveStopEffect.Stop(); - Destroy(MoveStopEffect); - MoveStopEffect = null; - } + StopFrostParticle(); MoveStopTime = 0; } else @@ -753,6 +725,24 @@ } float finalSpeed = fMoveSpeed * (1 - speedSlowRate); + + if (speedSlowRate > 0 && !isSlowDown) + { + isSlowDown = true; + + if (SlowDownParticle != null) + SlowDownParticle.Play(); + } + else if (speedSlowRate == 0 && isSlowDown) + { + isSlowDown = false; + + if (SlowDownParticle != null) + { + SlowDownParticle.Stop(); + SlowDownParticle.Clear(); + } + } Vector3 curPos = m_NavMeshAgent.transform.position; bool swithNode = false; @@ -1012,13 +1002,24 @@ // 移除Agent身上的中毒特效,并播放一个中毒效果消失的特效 if (PoisonParticle != null) { - PoisonParticle.Clear(); PoisonParticle.Stop(); + PoisonParticle.Clear(); if (PoisonEndParticle != null) PoisonEndParticle.Play(); } } + if (isSlowDown) + { + isSlowDown = false; + + if (SlowDownParticle != null) + { + SlowDownParticle.Stop(); + SlowDownParticle.Clear(); + } + } + mAnim.SetBool("Die", true); // 统一管理器内删除当前的Agent: AgentInsManager.instance.removeAgent(this); -- Gitblit v1.9.1