Files
trail-into-darkness/Packages/com.jovian.inspector-tools/Editor/Attributes/SuffixAttribute.cs
2026-04-02 07:22:33 +02:00

34 lines
1.2 KiB
C#

using UnityEngine;
namespace Jovian.InspectorTools {
public class SuffixAttribute : PropertyAttribute {
public readonly string suffix;
public SuffixAttribute(string suffix) => this.suffix = suffix;
}
}
#if UNITY_EDITOR
namespace Jovian.InspectorTools.Internal {
using UnityEditor;
[CustomPropertyDrawer(typeof(SuffixAttribute))]
public class SuffixDrawer : PropertyDrawer {
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
var suffix = new GUIContent(((SuffixAttribute)attribute).suffix);
var suffixSize = GUI.skin.label.CalcSize(suffix);
suffixSize.x += GUI.skin.label.margin.left;
var fieldPosition = position;
fieldPosition.width -= suffixSize.x;
var suffixPosition = position;
suffixPosition.x += fieldPosition.width + GUI.skin.label.margin.left;
suffixPosition.width = suffixSize.x;
EditorGUI.PropertyField(fieldPosition, property, label);
var enabled = GUI.enabled;
GUI.enabled = false;
GUI.Label(suffixPosition, suffix);
GUI.enabled = enabled;
}
}
}
#endif