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("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; } } }