wangguan
2020-10-27 bac1e673b54b1e5f773c4bd098e1b4fe8981c62e
Assets/Scripts/TowerDefense/Agents/Agent.cs
@@ -193,6 +193,12 @@
        protected bool bInDeathAct = false;
        /// <summary>
        /// 原地罚站
        /// </summary>
        /// <param name="can"></param>
        public bool CanMove { get; set; } = true;
        /// <summary>
        /// Gets the attached nav mesh agent velocity
        /// </summary>
        public override Vector3 velocity
@@ -314,6 +320,7 @@
            poisonTimes = 0;
            timeToPoisonHurt = 0;
            bShieldBreak = false;
            CanMove = true;
            /*// 如果对应的粒子不为空,则播放
         if( spawnParticle)
@@ -404,7 +411,11 @@
                if (MoveStopEffect)
                    return;
                MoveStopEffect = Instantiate(WaveLineSelMgr.instance.bufStopMovePrefab);
                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();
            }
@@ -417,7 +428,11 @@
                if (MoveStopEffect)
                    return;
                MoveStopEffect = Instantiate(EndlessWaveLineManager.instance.bufStopMovePrefab);
                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();
            }
@@ -848,7 +863,7 @@
            this.UpdateAction();
            // 处理死亡状态了,不必再移动:
            if (bInDeathAct) return;
            if (bInDeathAct || !CanMove) return;
            m_Destination = initNode.GetNextNode();
            updateAgentPos(Time.deltaTime);
@@ -991,6 +1006,19 @@
        {
            if (mAnim)
            {
                if (isPoison)
                {
                    isPoison = false;
                    // 移除Agent身上的中毒特效,并播放一个中毒效果消失的特效
                    if (PoisonParticle != null)
                    {
                        PoisonParticle.Clear();
                        PoisonParticle.Stop();
                        if (PoisonEndParticle != null)
                            PoisonEndParticle.Play();
                    }
                }
                mAnim.SetBool("Die", true);
                // 统一管理器内删除当前的Agent:
                AgentInsManager.instance.removeAgent(this);