From 172d8ffbf5fe3bdd60b3d71a3a60feeed1cb1762 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Mon, 09 Nov 2020 16:37:47 +0800 Subject: [PATCH] Merge commit '894e974d944190fb2e10e14827f0d878626bd048' into master --- Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs | 92 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 64 insertions(+), 28 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs b/Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs index 7ef97db..7f8bf73 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs @@ -3,6 +3,7 @@ using UnityEngine; using UnityEngine.UI; using System; +using DG.Tweening; /** * 无尽模式选择buff @@ -15,12 +16,24 @@ { public Image Icon; - public Image BgMask; + /// <summary> + /// 边框 + /// </summary> + public Image BorderImage; - public Image Check; + /// <summary> + /// 品质底图 + /// </summary> + public Image QualityImage; + /// <summary> + /// buff名称 + /// </summary> public Text Name; + /// <summary> + /// 效果描述 + /// </summary> public Text Effect; public event Action<int> OnSelectBuffCompleted; @@ -30,44 +43,40 @@ /// </summary> public int Index; + /// <summary> + /// 是否被选中 + /// </summary> + public bool IsSelected { get; set; } + + private string iconPath = "UI/Endless/BuffIcon/"; + + private string qualityPath = "UI/Endless/BuffQuality/"; + private void Start() { - SetState(EndlessBuffSelectState.Normal); - } - /// <summary> - /// 设置选中状态 - /// </summary> - /// <param name="state"></param> - public void SetState(EndlessBuffSelectState state) - { - switch (state) - { - case EndlessBuffSelectState.Normal: - Check.gameObject.SetActive(false); - BgMask.gameObject.SetActive(false); - - break; - case EndlessBuffSelectState.Unselected: - Check.gameObject.SetActive(false); - BgMask.gameObject.SetActive(true); - break; - case EndlessBuffSelectState.Selected: - Check.gameObject.SetActive(true); - BgMask.gameObject.SetActive(false); - break; - } } public void OnClick() { + AudioSourceManager.Ins.Play(AudioEnum.ChooseBuff); + if (OnSelectBuffCompleted != null) OnSelectBuffCompleted(Index); } - public void SetIcon(Sprite param) + public void SetIcon(int resId) { - Icon.sprite = param; + Icon.sprite = Resources.Load($"{iconPath}{resId}", typeof(Sprite)) as Sprite; + } + + /// <summary> + /// 设置buff品质 + /// </summary> + /// <param name="quality"></param> + public void SetQuality(int quality) + { + QualityImage.sprite = Resources.Load($"{qualityPath}{quality}", typeof(Sprite)) as Sprite; } public void SetName(string buffName) @@ -92,5 +101,32 @@ { Name.color = EndlessBuffData.GetColorByRare(rare); } + + /// <summary> + /// 设置选中状态,做个缓动播放粒子特效 + /// </summary> + /// <param name="isSelected"></param> + public void SetState(bool selected) + { + if (selected == IsSelected) return; + + IsSelected = selected; + BorderImage.gameObject.SetActive(selected); + + if (selected) + DOTween.To(() => transform.localScale, (v) => transform.localScale = v, new Vector3(1f, 1f, 1f), 0.15f); + else + DOTween.To(() => transform.localScale, (v) => transform.localScale = v, new Vector3(0.87f, 0.87f, 0.87f), 0.15f); + } + + /// <summary> + /// 重置 + /// </summary> + public void Reset() + { + IsSelected = false; + BorderImage.gameObject.SetActive(false); + transform.localScale = new Vector3(0.87f, 0.87f, 0.87f); + } } } \ No newline at end of file -- Gitblit v1.9.1