wangguan
2020-11-27 4bfaf190a4e16ecfc945bc26525b21dcaacc0417
Assets/Scripts/TowerDefense/UI/EndlessBossCtrl.cs
@@ -26,11 +26,15 @@
        public Image Title;
        private string titlePath = "UI/Endless/SkillTitle/";
        public ParticleSystem deadPS, deadMoney;
        // Start is called before the first frame update
        private void Start()
        {
            ColorVal = 0;
            EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessBossSkillGlintTitle, Glint);
            EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessBossSkillGlintTitle, Glint);
        }
        // Update is called once per frame
@@ -39,8 +43,9 @@
        }
        private void Glint()
        private void Glint(int skillType)
        {
            Title.sprite = Resources.Load<Sprite>($"{titlePath}{skillType}");
            //设置一个DOTween队列
            Sequence flashSeq = DOTween.Sequence();
            Color c = Title.color;
@@ -54,6 +59,7 @@
            flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 0, 0.15f));
            flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 1, 0.3f));
            flashSeq.Append(DOTween.To(() => ColorVal, (v) => ColorVal = v, 0, 0.15f));
            flashSeq.AppendCallback(() => { EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessBossSkillGlintTitleCompleted); });
        }
        private float ColorVal
@@ -77,6 +83,13 @@
            if (frameName == "summonEnd")
            {
                EventCenter.Ins.BroadCast((int)EventType.EndlessBossSummonEnd);
                // 召唤动作结束后自动切换到站立状态
                ChangeState(EndlessBossActionState.Standing);
            }
            else if (frameName == "death")
            {
                BossAnimator.speed = 0;
                EventCenter.Ins.BroadCast((int)EventType.EndlessBossDeathActionEnd);
            }
        }
@@ -86,10 +99,20 @@
        /// <param name="newState"></param>
        public void ChangeState(EndlessBossActionState newState)
        {
            if (newState == ActionState) return;
            ActionState = newState;
            if (newState == EndlessBossActionState.Standing || newState == EndlessBossActionState.Summon)
                BossAnimator.speed = 1;
            else if (newState == EndlessBossActionState.Death)
            {
                //Debug.Log("BOSS死亡特效");
                //播放特效
                deadPS.Play();
                deadMoney.Play();
            }
            BossAnimator.SetInteger("State", (int)newState);
        }
    }
}