chenxin
2020-10-22 63133cf5403a9d7fbe3811d20c3d24f26a752449
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,33 +43,18 @@
        /// </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()
@@ -65,9 +63,18 @@
                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 +99,29 @@
        {
            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);
        }
    }
}