From 963bfbdf8c3640249a396e32d0f36bf2554388c2 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Thu, 17 Dec 2020 14:32:56 +0800 Subject: [PATCH] Merge commit '82cc6bd447a9eefa2bdc1e21e93938d95213755a' --- Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs | 55 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 32 insertions(+), 23 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs b/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs index 20b0c90..f8b98e3 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessScoreManager.cs @@ -30,14 +30,15 @@ public Text DoubleHitText; - public GameObject OneTimeKillObj; + public Image OneTimeKillObj; + private bool isShowing; public Text OneTimeKillText; /// <summary> /// 连击的CD时间 /// </summary> - private float doubleHitCD = 3f; + private float doubleHitCD = 0.8f; private float remainTime; @@ -66,41 +67,41 @@ // Start is called before the first frame update private void Start() { + isShowing = false; Init(); - EventCenter.Ins.Add<Agent>((int)KTGMGemClient.EventType.EndlessAgentDead, AgentDead); + EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessAgentDead, AgentDead); EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessOneHit, OnHit); EventCenter.Ins.Add<int>((int)KTGMGemClient.EventType.EndlessOneTimeKillCount, OnTimeKill); canvasGroup = DoubleHit.GetComponent<CanvasGroup>(); } /// <summary> - /// 一次性击杀 + /// /// 一次性击杀 /// </summary> /// <param name="count"></param> private void OnTimeKill(int count) { - Debug.Log($"--------------------- 一次性击杀个数:{count} ---------------------"); if (count >= 10) { - AddScore(500); + AddScore(0); ShowOneTimeKill(10, 500); } else if (count >= 8) { - AddScore(200); + AddScore(0); ShowOneTimeKill(8, 200); } else if (count >= 5) { - AddScore(100); + AddScore(0); ShowOneTimeKill(5, 100); } } - private void AgentDead(Agent agent) + private void AgentDead(int point) { if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return; - AddScore(agent.EnemyData.point); + AddScore(point); } // Update is called once per frame @@ -127,23 +128,24 @@ ++DoubleHitCount; openDoubleHit = true; DoubleHitText.text = $"{DoubleHitCount}"; - ShowDoubleHit(); + if (DoubleHitCount >= 10) + ShowDoubleHit(); remainTime = doubleHitCD; // 策划说先写死吧 if (DoubleHitCount == 50) { - AddScore(200); + AddScore(0); FloatDoubleHitReward(200); } else if (DoubleHitCount == 100) { - AddScore(500); + AddScore(0); FloatDoubleHitReward(500); } else if (DoubleHitCount == 200) { - AddScore(1500); + AddScore(0); FloatDoubleHitReward(1500); } } @@ -173,6 +175,7 @@ DOTween.To(() => canvasGroup.alpha, (float v) => canvasGroup.alpha = v, 0, 0.3f); } + /// <summary> /// 显示一次性击杀飘字 /// </summary> @@ -180,18 +183,24 @@ /// <param name="score"></param> private void ShowOneTimeKill(int count, int score) { - OneTimeKillText.text = $"{count}连杀 +{score}"; - OneTimeKillObj.transform.localScale = Vector3.zero; - OneTimeKillObj.SetActive(true); - CanvasGroup cg = OneTimeKillObj.GetComponent<CanvasGroup>(); - DOTween.To(() => OneTimeKillObj.transform.localScale, (Vector3 v) => OneTimeKillObj.transform.localScale = v, Vector3.one, 0.2f); - Tween t1 = DOTween.To(() => cg.alpha, (float v) => cg.alpha = v, 0f, 0.2f).SetDelay(2f); - t1.OnComplete(OnShowOneTimeKillComplete); + if (!isShowing) + { + isShowing = true; + Image obj = Instantiate(OneTimeKillObj); + obj.transform.SetParent(GameObject.Find("Panel").transform, false); + obj.sprite = Resources.Load<Sprite>($"UI/DoubleHit/hit_{count}"); + StartCoroutine(KillImage(obj.gameObject)); + } + + //Destroy(obj.gameObject, 2.05f); } - private void OnShowOneTimeKillComplete() + IEnumerator KillImage(GameObject obj) { - OneTimeKillObj.SetActive(false); + yield return new WaitForSeconds(2.05f); + Destroy(obj); + + isShowing = false; } /// <summary> -- Gitblit v1.9.1