using UnityEngine; namespace Module.ProjectValidator.Editor { internal static class EditorIconUtility { private static bool _initialized; private static GUIContent _warning; private static GUIContent _error; private static GUIContent _warningRedirect; private static GUIContent _errorRedirect; private static GUIStyle _style; private static void Initialize() { _initialized = true; _warning = new GUIContent(EditorAssetUtility.LoadFirstAsset("editor_project_validator_warning")); _error = new GUIContent(EditorAssetUtility.LoadFirstAsset("editor_project_validator_error")); _warningRedirect = new GUIContent(EditorAssetUtility.LoadFirstAsset("editor_project_validator_warning_redirect")); _errorRedirect = new GUIContent(EditorAssetUtility.LoadFirstAsset("editor_project_validator_error_redirect")); _style = new GUIStyle(); } public static GUIContent GetIcon(EValidatorSeverity severity, bool isRedirect) { if (!_initialized) Initialize(); if (isRedirect) return severity == EValidatorSeverity.Warning ? _warningRedirect : _errorRedirect; return severity == EValidatorSeverity.Warning ? _warning : _error; } public static void Draw(Rect rect, EValidatorSeverity severity, bool isRedirect) { if (Event.current.type != EventType.Repaint) return; var content = GetIcon(severity, isRedirect); _style.Draw(rect, content, -1); } } }