From 452c75675679c44cc39b04bdb7d330d7c5c14d5c Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Tue, 29 Dec 2020 10:48:06 +0800 Subject: [PATCH] 增加多SDK支持。常规使用SDKChannel.KTGM 偶哈游的是空SDK --- Assets/Scripts/TowerDefense/UI/EndlessBossHPManager.cs | 134 ++++++++++++++++++++++++++++++++------------ 1 files changed, 96 insertions(+), 38 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBossHPManager.cs b/Assets/Scripts/TowerDefense/UI/EndlessBossHPManager.cs index bb97cca..8eefc28 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessBossHPManager.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessBossHPManager.cs @@ -1,9 +1,8 @@ using UnityEngine.UI; -using System.Collections; -using System.Collections.Generic; using UnityEngine; using Core.Utilities; using DG.Tweening; +using TMPro; /** * 无尽模式boss血量管理器 @@ -24,21 +23,17 @@ /// </summary> public Image HPImage2; - private Color[] colorArr = - { - new Color(1, 0, 0), // "#FF0000" - new Color(1, 165 / 255f, 0), // "#FFA500" - new Color(1, 1, 0), // "#FFFF00" - new Color(0, 1, 0), // "#00FF00" - new Color(0, 1, 1), // "#00FFFF" - new Color(0, 0, 1), // "#0000FF" - new Color(128 / 255f, 0, 128 / 255f) // "#800080" - }; + /// <summary> + /// boss形象 + /// </summary> + public Image BossImage; + + private string path = "UI/Endless/Blood/"; /// <summary> - /// 当前的进度值 + /// 血条底图 /// </summary> - private float current; + public Sprite BaseBlood; /// <summary> /// 目标进度值 @@ -46,23 +41,55 @@ private float target; /// <summary> - /// 血条消失速度 - /// </summary> - public float Speed = 50f; - - /// <summary> /// 当前颜色索引 /// </summary> private int index; - private Tween tween; + public TextMeshProUGUI WaveNumText; - public Text WaveNumText; + /// <summary> + /// 血条7种颜色 + /// </summary> + private int count = 7; + + /// <summary> + /// boss信息,名字和等级 + /// </summary> + public Text BossInfo; + + private Sequence progressSequence; + + public Text HPInfoText; + + private float totalHP; + + /// <summary> + /// boss总血量 + /// </summary> + /// <value></value> + private float TotalHP { get; set; } + + private float hp; + + /// <summary> + /// 当前血量 + /// </summary> + /// <value></value> + public float CurrentHP + { + get { return hp; } + private set + { + hp = value; + + if (hp < 0.00001f) hp = 0; + } + } // Start is called before the first frame update private void Start() { - InitHP(); + Init(); } /// <summary> @@ -82,14 +109,15 @@ } /// <summary> - /// 设置当前进度百分比 + /// 设置boss的当前血量 /// </summary> - /// <param name="progress"></param> - public void SetCurrentProgress(float progress) + /// <param name="hp"></param> + public void SetCurrentHP(float hp) { - target = progress; - tween = DOTween.To(() => HPImage2.fillAmount, (v) => HPImage2.fillAmount = v, target, 0.3f); - tween.Play(); + CurrentHP = hp; + target = CurrentHP / TotalHP; + HPInfoText.text = $"HP:{Mathf.Floor(CurrentHP)}/{Mathf.Floor(TotalHP)}"; + DOTween.To(() => HPImage2.fillAmount, (float v) => HPImage2.fillAmount = v, target, 0.2f); } /// <summary> @@ -97,11 +125,10 @@ /// </summary> private void ResetProgress() { - current = 1f; target = 1f; HPImage1.fillAmount = 1; HPImage2.fillAmount = 1; - index = index % colorArr.Length; + index = index % count; } /// <summary> @@ -110,9 +137,8 @@ /// <param name="end"></param> public void SwitchHP(bool end = false) { - tween.Pause(); HPImage2.fillAmount = 0; - index = ++index % colorArr.Length; + index = ++index % count; ChangeHPImageIndex(); ResetProgress(); SetHPColor(end); @@ -121,11 +147,21 @@ /// <summary> /// 初始化血条 /// </summary> - public void InitHP() + public void Init() { index = 0; ResetProgress(); SetHPColor(); + } + + /// <summary> + /// 初始化血量数据 + /// </summary> + /// <param name="totalHP"></param> + public void InitHP(float totalHP) + { + CurrentHP = TotalHP = totalHP; + HPInfoText.text = $"HP:{Mathf.Floor(CurrentHP)}/{Mathf.Floor(TotalHP)}"; } /// <summary> @@ -134,7 +170,20 @@ /// <param name="wave"></param> public void UpdateWave(int wave) { - WaveNumText.text = $"×{wave}"; + WaveNumText.text = $"x{wave}"; + if (wave == 0) + { + AudioSourceManager.Ins.Play(AudioEnum.BossDie); + } + } + + /// <summary> + /// 设置boss信息 + /// </summary> + /// <param name="info"></param> + public void SetBossInfo(string info) + { + BossInfo.text = info; } /// <summary> @@ -160,14 +209,23 @@ { if (end) { - HPImage2.color = colorArr[index]; - HPImage1.color = Color.white; + HPImage2.sprite = GetSprite(index); + HPImage1.sprite = Resources.Load($"{path}di", typeof(Sprite)) as Sprite; } else { - HPImage2.color = colorArr[index]; - HPImage1.color = colorArr[(index + 1) % colorArr.Length]; + HPImage2.sprite = GetSprite(index); + HPImage1.sprite = GetSprite((index + 1) % count); } } + + /// <summary> + /// 根据索引获得sprite + /// </summary> + /// <param name="index"></param> + private Sprite GetSprite(int index) + { + return Resources.Load($"{path}{index}", typeof(Sprite)) as Sprite; + } } } \ No newline at end of file -- Gitblit v1.9.1