using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; namespace ActionTool { internal class ActionEditorStyles { public GUIStyle textBold; public GUIStyle selectObj; public GUIStyle textSmall; public GUIStyle boxToggle; public GUIStyle keyFrameButton; Texture2D m_SelectIcon; Texture2D m_KeyFrameIcon; private static ActionEditorStyles s_instance; public static ActionEditorStyles Get() { bool flag = s_instance == null; if (flag) { s_instance = new ActionEditorStyles(); } return s_instance; } private ActionEditorStyles() { m_SelectIcon = (Texture2D)Resources.Load("select_white"); m_SelectIcon.filterMode = FilterMode.Point; m_KeyFrameIcon = EditorGUIUtility.FindTexture("animationkeyframe"); InitStyle(out textBold, GUI.skin.label, s => { s.fontStyle = FontStyle.Bold; }); InitStyle(out selectObj, GUI.skin.button, s => { s.normal.background = m_SelectIcon; s.active.background = m_SelectIcon; s.focused.background = m_SelectIcon; s.hover.background = m_SelectIcon; s.normal.background = m_SelectIcon; }); InitStyle(out textSmall, GUI.skin.label, s => { s.fontSize = 8; }); InitStyle(out boxToggle, EditorStyles.miniButtonLeft, s => { s.fontSize = 8; s.normal.textColor = Color.white; s.onNormal.textColor = Color.white; s.active.textColor = Color.white; s.onActive.textColor = Color.white; }); InitStyle(out keyFrameButton, GUI.skin.button, s => { s.fontSize = 8; }); } private delegate void Initter(GUIStyle style); private static void InitStyle(out GUIStyle normal, GUIStyle other, Initter initter) { normal = new GUIStyle(other); initter(normal); } private static void InitStyle(out GUIStyle normal, Initter initter) { normal = new GUIStyle(); initter(normal); } } }