72 lines
2.1 KiB
C#
72 lines
2.1 KiB
C#
![]() |
// Cristian Pop - https://boxophobic.com/
|
|||
|
|
|||
|
using UnityEngine;
|
|||
|
using UnityEditor;
|
|||
|
|
|||
|
namespace Boxophobic.StyledGUI
|
|||
|
{
|
|||
|
[CustomPropertyDrawer(typeof(StyledRangeOptions))]
|
|||
|
public class StyledRangeOptionsAttributeDrawer : PropertyDrawer
|
|||
|
{
|
|||
|
StyledRangeOptions a;
|
|||
|
|
|||
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|||
|
{
|
|||
|
a = (StyledRangeOptions)attribute;
|
|||
|
|
|||
|
GUIStyle styleMid = new GUIStyle();
|
|||
|
styleMid.alignment = TextAnchor.MiddleCenter;
|
|||
|
styleMid.normal.textColor = Color.gray;
|
|||
|
styleMid.fontSize = 7;
|
|||
|
|
|||
|
if (a.display.Length > 0)
|
|||
|
{
|
|||
|
EditorGUI.PropertyField(position, property, label, true);
|
|||
|
GUILayout.Space(5);
|
|||
|
}
|
|||
|
|
|||
|
GUILayout.BeginHorizontal();
|
|||
|
GUILayout.Space(8);
|
|||
|
property.floatValue = GUILayout.HorizontalSlider(property.floatValue, a.min, a.max);
|
|||
|
property.floatValue = Mathf.Clamp(property.floatValue, a.min, a.max);
|
|||
|
property.floatValue = Mathf.Round(property.floatValue * 1000f) / 1000f;
|
|||
|
GUILayout.Space(8);
|
|||
|
GUILayout.EndHorizontal();
|
|||
|
|
|||
|
#if UNITY_2019_3_OR_NEWER
|
|||
|
GUILayout.Space(15);
|
|||
|
#endif
|
|||
|
GUILayout.BeginHorizontal();
|
|||
|
|
|||
|
int maxWidth = 20;
|
|||
|
|
|||
|
#if UNITY_2019_3_OR_NEWER
|
|||
|
maxWidth = 28;
|
|||
|
#endif
|
|||
|
for (int i = 0; i < a.options.Length - 1; i++)
|
|||
|
{
|
|||
|
GUILayout.Label(a.options[i], styleMid, GUILayout.Width(maxWidth));
|
|||
|
GUILayout.Label("", styleMid);
|
|||
|
}
|
|||
|
|
|||
|
GUILayout.Label(a.options[a.options.Length - 1], styleMid, GUILayout.Width(maxWidth));
|
|||
|
GUILayout.EndHorizontal();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|||
|
{
|
|||
|
a = (StyledRangeOptions)attribute;
|
|||
|
|
|||
|
if (a.display.Length > 0)
|
|||
|
{
|
|||
|
return 18;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return -2;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|