| | |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using System; |
| | | using DG.Tweening; |
| | | |
| | | /** |
| | | * 无尽模式选择buff |
| | |
| | | { |
| | | 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; |
| | |
| | | /// </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() |
| | |
| | | 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) |
| | |
| | | { |
| | | Name.color = EndlessBuffData.GetColorByRare(rare); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置选中状态,做个缓动播放粒子特效 |
| | | /// </summary> |
| | | /// <param name="isSelected"></param> |
| | | public void SetState(bool selected) |
| | | { |
| | | if (selected == IsSelected) return; |
| | | |
| | | IsSelected = 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() |
| | | { |
| | | transform.localScale = new Vector3(0.87f, 0.87f, 0.87f); |
| | | } |
| | | } |
| | | } |