From d7d30d2e665aa451f8bd3ea3c8b15391b765ccc3 Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Wed, 02 Dec 2020 17:47:42 +0800 Subject: [PATCH] 修改新手引导 修改结算页面使用无限滚动 替换了json --- Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs | 104 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 77 insertions(+), 27 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs b/Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs index 7ef97db..9a6b69e 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,44 @@ /// </summary> public int Index; + /// <summary> + /// 是否被选中 + /// </summary> + public bool IsSelected { get; set; } + + private string iconPath = "UI/Endless/BuffIcon/"; + + private string qualityPath = "UI/Endless/BuffQuality/"; + public ParticleSystem myPS;//播放粒子特效 + GameObject psParent; private void Start() { - SetState(EndlessBuffSelectState.Normal); - } - - /// <summary> - /// 设置选中状态 - /// </summary> - /// <param name="state"></param> - public void SetState(EndlessBuffSelectState state) - { - switch (state) + if (psParent == null && myPS != null) { - 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; + psParent = myPS.transform.parent.gameObject; } } 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 +105,42 @@ { 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); + if (!psParent.activeSelf) psParent.SetActive(true); + myPS?.Play(); + } + else + { + DOTween.To(() => transform.localScale, (v) => transform.localScale = v, new Vector3(0.87f, 0.87f, 0.87f), 0.15f); + myPS?.Stop(); + if (psParent.activeSelf) psParent.SetActive(false); + + } + } + + /// <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