1234567891011121314151617181920212223242526272829303132333435363738 |
- using UnityEditor;
- using UnityEngine;
-
- namespace Timeline.Samples
- {
- // Custom property drawer that draws all child properties inline
- [CustomPropertyDrawer(typeof(NoFoldOutAttribute))]
- public class NoFoldOutPropertyDrawer : PropertyDrawer
- {
- public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
- {
- if (!property.hasChildren)
- return base.GetPropertyHeight(property, label);
- property.isExpanded = true;
- return EditorGUI.GetPropertyHeight(property, label, true) -
- EditorGUI.GetPropertyHeight(property, label, false);
- }
-
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- if (!property.hasChildren)
- base.OnGUI(position, property, label);
- else
- {
- SerializedProperty iter = property.Copy();
- property.Next(true);
- do
- {
- float height = EditorGUI.GetPropertyHeight(property, property.hasVisibleChildren);
- position.height = height;
- EditorGUI.PropertyField(position, property, property.hasVisibleChildren);
- position.y = position.y + height;
- }
- while (property.NextVisible(false));
- }
- }
- }
- }
|