From df8c6633500f6c1c752f8a60025cda0e9909644c Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Thu, 17 Dec 2020 14:53:22 +0800 Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/EndlessHomeBaseHPManager.cs | 70 ++++++++++++++++++++++++----------- 1 files changed, 48 insertions(+), 22 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessHomeBaseHPManager.cs b/Assets/Scripts/TowerDefense/UI/EndlessHomeBaseHPManager.cs index 9fd6421..b2cc919 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessHomeBaseHPManager.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessHomeBaseHPManager.cs @@ -5,6 +5,7 @@ using TMPro; using DG.Tweening; using Core.Utilities; +using System.Collections; /** * 无尽模式玩家基地血量管理器 @@ -41,6 +42,8 @@ private Image heartImg; private Timer timer; + public ParticleSystem loseHeartPS;//心碎特效 + private GameObject decreaseHeartObj;//掉血显示 // Start is called before the first frame update private void Start() @@ -78,29 +81,51 @@ EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessHeartAllLose); } + /// <summary> /// 丢失爱心飘字 /// </summary> /// <param name="count"></param> private void FloatLoseHeart(int count) { - GameObject prefab = Resources.Load<GameObject>("UI/DecreaseHeart"); - GameObject obj = Instantiate(prefab); - obj.transform.SetParent(GameObject.Find("UICamera/BottomCanvas/Panel/Bottom/CurrencyContainer").transform, false); - obj.transform.localPosition = new Vector3(91.5f, 48.8f, 0f); - obj.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); - TextMeshProUGUI textMeshProUGUI = obj.transform.GetChild(0).GetComponent<TextMeshProUGUI>(); - textMeshProUGUI.text = $"-{count}"; - DOTween.To( - () => obj.transform.localPosition.y, - (float v) => - { - Vector3 pos = obj.transform.localPosition; - pos.y = v; - obj.transform.localPosition = pos; + TextMeshProUGUI textMeshProUGUI; + if (decreaseHeartObj != null) + { + textMeshProUGUI = decreaseHeartObj.transform.GetChild(0).GetComponent<TextMeshProUGUI>(); + textMeshProUGUI.text = int.Parse(textMeshProUGUI.text) - count + ""; + } + else + { + GameObject prefab = Resources.Load<GameObject>("UI/DecreaseHeart"); + GameObject obj = Instantiate(prefab); + obj.transform.SetParent(GameObject.Find("UICamera/BottomCanvas/Panel/Bottom/CurrencyContainer").transform, false); + obj.transform.localPosition = new Vector3(91.5f, 48.8f, 0f); + obj.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); - }, 70.9f, 0.3f); - Destroy(obj, 0.6f); + decreaseHeartObj = obj; + + textMeshProUGUI = obj.transform.GetChild(0).GetComponent<TextMeshProUGUI>(); + textMeshProUGUI.text = $"-{count}"; + DOTween.To( + () => obj.transform.localPosition.y, + (float v) => + { + Vector3 pos = obj.transform.localPosition; + pos.y = v; + obj.transform.localPosition = pos; + + }, 70.9f, 0.3f); + StartCoroutine(DestroyDecreaseHeart()); + } + + //Destroy(obj, 0.6f); + } + + IEnumerator DestroyDecreaseHeart() + { + yield return new WaitForSeconds(0.6f); + Destroy(decreaseHeartObj); + decreaseHeartObj = null; } private void PlayLoseHeartEffect() @@ -108,12 +133,13 @@ if (!isPlayLoseHeartDone) return; heartImg.enabled = false; - GameObject obj = Instantiate(loseHeartPrefab); - obj.transform.SetParent(GameObject.Find("ParticleSystemObject").transform, false); - obj.transform.localPosition = new Vector3(-27.93f, 0f, -51.52f); - obj.transform.localScale = new Vector3(0.9f, 0.9f, 0.9f); - ParticleSystem ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - ps?.Play(); + // GameObject obj = Instantiate(loseHeartPrefab); + // obj.transform.SetParent(GameObject.Find("ParticleSystemObject").transform, false); + // obj.transform.localPosition = new Vector3(-27.93f, 0f, -51.52f); + // obj.transform.localScale = new Vector3(0.9f, 0.9f, 0.9f); + // ParticleSystem ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); + + loseHeartPS?.Play(); timer = new Timer(0.6f, SpawnHeart); } -- Gitblit v1.9.1