using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using System; 
 | 
  
 | 
[CreateAssetMenu(menuName = "Config/FunctionButtonConfig")] 
 | 
public class FunctionButtonConfig : ScriptableObject 
 | 
{ 
 | 
    public UIConfig normal = new UIConfig("Title_Normal", Color.white, 23); 
 | 
    public UIConfig selected = new UIConfig("Title_Clicked", Color.white, 24); 
 | 
    public UIConfig locked = new UIConfig("Title_Locked", Color.white, 23); 
 | 
  
 | 
    static FunctionButtonConfig m_Default; 
 | 
    public static FunctionButtonConfig GetDefault() 
 | 
    { 
 | 
        if (m_Default == null) 
 | 
        { 
 | 
            m_Default = BuiltInLoader.LoadScriptableObject<FunctionButtonConfig>("FunctionButton_Default"); 
 | 
        } 
 | 
  
 | 
        return m_Default; 
 | 
    } 
 | 
  
 | 
    public string GetIconKey(TitleBtnState _state) 
 | 
    { 
 | 
        switch (_state) 
 | 
        { 
 | 
            case TitleBtnState.Click: 
 | 
                return selected.iconKey; 
 | 
            case TitleBtnState.Normal: 
 | 
                return normal.iconKey; 
 | 
            case TitleBtnState.Locked: 
 | 
                return locked.iconKey; 
 | 
            default: 
 | 
                return string.Empty; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public Color GetFontColor(TitleBtnState _state) 
 | 
    { 
 | 
        switch (_state) 
 | 
        { 
 | 
            case TitleBtnState.Click: 
 | 
                return selected.fontColor; 
 | 
            case TitleBtnState.Normal: 
 | 
                return normal.fontColor; 
 | 
            case TitleBtnState.Locked: 
 | 
                return locked.fontColor; 
 | 
            default: 
 | 
                return Color.white; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public int GetFontSize(TitleBtnState _state) 
 | 
    { 
 | 
        switch (_state) 
 | 
        { 
 | 
            case TitleBtnState.Click: 
 | 
                return selected.fontSize; 
 | 
            case TitleBtnState.Normal: 
 | 
                return normal.fontSize; 
 | 
            case TitleBtnState.Locked: 
 | 
                return locked.fontSize; 
 | 
            default: 
 | 
                return 24; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    [System.Serializable] 
 | 
    public struct UIConfig 
 | 
    { 
 | 
        public string iconKey; 
 | 
        public Color fontColor; 
 | 
        public int fontSize; 
 | 
  
 | 
        public UIConfig(string _icon, Color _fontColor, int _fontSize) 
 | 
        { 
 | 
            this.iconKey = _icon; 
 | 
            this.fontColor = _fontColor; 
 | 
            this.fontSize = _fontSize; 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |