public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("LOGGER SETTINGS", UnityUtils.Engine.UI.EditorStyles.Title, GUILayout.Height(40)); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.PropertyField(serializedObject.FindProperty("CustomPrefix")); EditorGUILayout.PropertyField(serializedObject.FindProperty("Options")); EditorGUILayout.PropertyField(serializedObject.FindProperty("LogType")); EditorGUILayout.PropertyField(serializedObject.FindProperty("RotateSize")); EditorGUILayout.HelpBox("The rotation size is in KB. 0 KB means, never rotate.", MessageType.None); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); } #if UNITY_UTILS_DEVELOPMENT GUI.changed = false; EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Bold", UnityUtils.Engine.UI.EditorStyles.HeaderLeft, GUILayout.MinWidth(EditorGUIUtility.labelWidth)); EditorGUILayout.LabelField("Colors", UnityUtils.Engine.UI.EditorStyles.HeaderLeft, _maxWidth); EditorGUILayout.EndHorizontal(); PlaceStyle(_settings.Styles.Brackets); PlaceStyle(_settings.Styles.Timestamp); PlaceStyle(_settings.Styles.Type); PlaceStyle(_settings.Styles.Text); PlaceStyle(_settings.Styles.ListKey); PlaceStyle(_settings.Styles.ListValue); EditorGUILayout.Separator(); foreach (var pair in _settings.Styles.LogLevel) { PlaceStyle(pair.Value, pair.Key.ToString()); } EditorGUILayout.Separator(); var style = new GUIStyle(); style.richText = true; EditorGUILayout.Separator(); EditorGUILayout.Separator(); _logPosition = EditorGUILayout.BeginScrollView(_logPosition, UnityUtils.Engine.UI.EditorStyles.VeryDarkBackground, GUILayout.ExpandHeight(false)); var i = 0; foreach (var pair in _settings.Styles.LogLevel) { if (EditorGUIUtility.isProSkin) { if (i == 1) { EditorGUILayout.BeginHorizontal(UnityUtils.Engine.UI.EditorStyles.DarkSelectedBackground); } else if (i % 2 == 0) { EditorGUILayout.BeginHorizontal(UnityUtils.Engine.UI.EditorStyles.DarkBackground); } else { EditorGUILayout.BeginHorizontal(UnityUtils.Engine.UI.EditorStyles.VeryDarkBackground); } } else { if (i == 1) { EditorGUILayout.BeginHorizontal(UnityUtils.Engine.UI.EditorStyles.LightSelectedBackground); } else if (i % 2 == 0) { EditorGUILayout.BeginHorizontal(UnityUtils.Engine.UI.EditorStyles.LightBackground); } else { EditorGUILayout.BeginHorizontal(UnityUtils.Engine.UI.EditorStyles.VeryLightBackground); } } i++; EditorGUILayout.LabelField( C("[", _settings.Styles.Brackets) + C("16-02-18 12:29:08.028", _settings.Styles.Timestamp) + C("]", _settings.Styles.Brackets) + C(" [" + pair.Key.ToString().ToUpper() + "] ", pair.Value) + C("ExampleClass: ", _settings.Styles.Type) + C("This is a log message!\n", _settings.Styles.Text) + C("Filename: ", _settings.Styles.ListKey) + C("miracle_file.cs\n", _settings.Styles.ListValue), style, GUILayout.Height(30)); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Log")) { Debug.Log("This is an info log"); Debug.LogFormat("this is a parametrized info {{{0}}}", "log"); Debug.LogWarning("This is a warn log"); Debug.LogError("This is an error log"); Debug.Assert(false, "This is an assert log"); throw new Exception("This is an exception"); } GUI.enabled = true; if (GUILayout.Button("Reset Style")) { _settings.ResetStyle(); } EditorGUILayout.EndHorizontal(); if (GUI.changed) { EditorUtility.SetDirty(target); } #endif }