Files
trail-into-darkness/Packages/com.jovian.inspector/Editor/Tools/RequiredUtil.cs
2026-03-29 19:16:39 +02:00

44 lines
1.5 KiB
C#

using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
namespace Jovian.InspectorTools.Internal {
public static class RequiredUtil {
private const float ICON_X_OFFSET = 15f;
private const float ICON_SIZE = 18f;
private static Color ErrorColor = new(1f, 0.5f, 0.5f, 1f);
private static GUIContent errorIcon;
private static GUIStyle errorStyle;
public static void LayoutRequired(ref Rect position, string tooltip, bool indent = true) {
if (indent) {
position.x += ICON_SIZE;
position.width -= ICON_SIZE;
}
}
public static void DrawRequired(ref Rect position, string tooltip, bool indent = true) {
if(errorIcon == null || errorStyle == null) {
errorIcon = new GUIContent(EditorGUIUtility.IconContent("console.erroricon.sml").image);
errorStyle = new GUIStyle(GUI.skin.label) {
padding = new RectOffset(0, 0, 0, 0),
imagePosition = ImagePosition.ImageOnly
};
}
errorIcon.tooltip = tooltip;
Rect errorIconRect = new Rect(position.x - ICON_X_OFFSET, position.y + 1, ICON_SIZE, EditorGUIUtility.singleLineHeight);
GUI.Label(errorIconRect, errorIcon, errorStyle);
GUI.color = ErrorColor;
if (indent) {
position.x += ICON_SIZE;
position.width -= ICON_SIZE;
}
}
}
}
#endif