From 5b158af90739dcbb89c1538a6cb8c65a875dce80 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 26 Nov 2020 20:52:34 +0800 Subject: *misc --- .../StyledInspector/StyledPopupArrayDrawer.cs | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/StyledInspector/StyledPopupArrayDrawer.cs (limited to 'Assets/BOXOPHOBIC/Utils/Editor/StyledInspector/StyledPopupArrayDrawer.cs') diff --git a/Assets/BOXOPHOBIC/Utils/Editor/StyledInspector/StyledPopupArrayDrawer.cs b/Assets/BOXOPHOBIC/Utils/Editor/StyledInspector/StyledPopupArrayDrawer.cs new file mode 100644 index 00000000..bcf8bbdb --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/StyledInspector/StyledPopupArrayDrawer.cs @@ -0,0 +1,36 @@ +// Cristian Pop - https://boxophobic.com/ + +using UnityEngine; +using UnityEditor; + +namespace Boxophobic.StyledGUI +{ + [CustomPropertyDrawer(typeof(StyledPopupArray))] + public class StyledPopupArrayAttributeDrawer : PropertyDrawer + { + StyledPopupArray a; + private int index = 0; + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + a = (StyledPopupArray)attribute; + + var arrProp = property.serializedObject.FindProperty(a.array); + + var arr = new string[arrProp.arraySize]; + + for (int i = 0; i < arrProp.arraySize; i++) + { + arr[i] = arrProp.GetArrayElementAtIndex(i).stringValue; + } + + index = EditorGUILayout.Popup(property.displayName, index, arr); + property.intValue = index; + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return -2; + } + } +} -- cgit v1.1-26-g67d0