using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
using UnityEngine.UI;
|
[CreateAssetMenu(menuName = "Config/EnableButtonConfig")]
|
public class EnableButtonConfig : ScriptableObject
|
{
|
[SerializeField] EnableButtonType type;
|
[SerializeField] EnableButtonStyle enableButton;
|
[SerializeField] EnableButtonStyle unEnableButton;
|
|
public static Dictionary<EnableButtonType, EnableButtonConfig> dict = new Dictionary<EnableButtonType, EnableButtonConfig>();
|
|
public static void SetEnable(Button _btn, Text _text, bool _enable, EnableButtonType _type)
|
{
|
var _cfg = GetEnableButtonCfg(_type);
|
var _btnStyle = _enable ? _cfg.enableButton : _cfg.unEnableButton;
|
_btn.interactable = _enable;
|
var _colors = _btn.colors;
|
_colors.disabledColor = Color.white;
|
_btn.colors = _colors;
|
_btn.image.SetSprite(_btnStyle.iconKey);
|
_text.fontSize = _btnStyle.fontSize;
|
_text.color = _btnStyle.fontColor;
|
}
|
|
public static EnableButtonConfig GetEnableButtonCfg(EnableButtonType _type)
|
{
|
if (dict.ContainsKey(_type))
|
{
|
return dict[_type];
|
}
|
var _cfg= BuiltInLoader.LoadScriptableObject<EnableButtonConfig>(StringUtility.Contact("EnableButton_", _type));
|
dict.Add(_type, _cfg);
|
return _cfg;
|
}
|
|
[Serializable]
|
public struct EnableButtonStyle
|
{
|
public string iconKey;
|
public Color fontColor;
|
public int fontSize;
|
}
|
|
public enum EnableButtonType
|
{
|
Default,
|
}
|
}
|