Maze / Library /PackageCache /com.unity.ugui@1.0.0 /Editor /UI /PropertyDrawers /SpriteStateDrawer.cs
| using UnityEngine; | |
| using UnityEngine.UI; | |
| namespace UnityEditor.UI | |
| { | |
| [] | |
| /// <summary> | |
| /// This is a PropertyDrawer for SpriteState. It is implemented using the standard Unity PropertyDrawer framework. | |
| /// </summary> | |
| public class SpriteStateDrawer : PropertyDrawer | |
| { | |
| public override void OnGUI(Rect rect, SerializedProperty prop, GUIContent label) | |
| { | |
| Rect drawRect = rect; | |
| drawRect.height = EditorGUIUtility.singleLineHeight; | |
| SerializedProperty highlightedSprite = prop.FindPropertyRelative("m_HighlightedSprite"); | |
| SerializedProperty pressedSprite = prop.FindPropertyRelative("m_PressedSprite"); | |
| SerializedProperty selectedSprite = prop.FindPropertyRelative("m_SelectedSprite"); | |
| SerializedProperty disabledSprite = prop.FindPropertyRelative("m_DisabledSprite"); | |
| EditorGUI.PropertyField(drawRect, highlightedSprite); | |
| drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; | |
| EditorGUI.PropertyField(drawRect, pressedSprite); | |
| drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; | |
| EditorGUI.PropertyField(drawRect, selectedSprite); | |
| drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; | |
| EditorGUI.PropertyField(drawRect, disabledSprite); | |
| drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; | |
| } | |
| public override float GetPropertyHeight(SerializedProperty prop, GUIContent label) | |
| { | |
| return 4 * EditorGUIUtility.singleLineHeight + 3 * EditorGUIUtility.standardVerticalSpacing; | |
| } | |
| } | |
| } | |