AnimatorStateDrawer.cs 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. #if UNITY_EDITOR
  2. using UnityEditor;
  3. using UnityEngine;
  4. namespace GpuEcsAnimationBaker.Engine.Data
  5. {
  6. [CustomPropertyDrawer(typeof(AnimatorState))]
  7. public class AnimatorStateDrawer : PropertyDrawer
  8. {
  9. public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
  10. {
  11. EditorGUI.BeginProperty(position, label, property);
  12. SerializedProperty parameterStateNameProperty = property.FindPropertyRelative("stateName");
  13. SerializedProperty parameterLayerProperty = property.FindPropertyRelative("layer");
  14. EditorGUI.LabelField(new Rect(position.position,
  15. new Vector2(80, position.height)),
  16. "Layer");
  17. EditorGUI.PropertyField(new Rect(position.position + new Vector2(85f, 0f),
  18. new Vector2(80, position.height)),
  19. parameterLayerProperty, new GUIContent(""));
  20. EditorGUI.LabelField(new Rect(position.position + new Vector2(170, 0f),
  21. new Vector2(80, position.height)),
  22. "State Name");
  23. EditorGUI.PropertyField(new Rect(position.position + new Vector2(255f, 0f),
  24. new Vector2(position.width - 255, position.height)),
  25. parameterStateNameProperty, new GUIContent(""));
  26. EditorGUI.EndProperty();
  27. }
  28. }
  29. }
  30. #endif