using UnityEngine.UIElements;
using UnityEditor;

[CustomPropertyDrawer(typeof(Limits))]
public class LimitsPropertyDrawer : PropertyDrawer
{
public VisualTreeAsset visualTreeAsset;

public override VisualElement CreatePropertyGUI(SerializedProperty property)
{
    var root = visualTreeAsset.CloneTree();
    string propertyLabel = UppercaseFirst(property.name);
    root.Q<Foldout>("RootFoldout").text = propertyLabel;
    return root;
}

public string UppercaseFirst(string s)
{
    if (string.IsNullOrEmpty(s)) return string.Empty;
    return char.ToUpper(s[0]) + s.Substring(1);
}

}