MarkLineEditor.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using UnityEditor;
  2. using UnityEngine;
  3. using XCharts.Runtime;
  4. namespace XCharts.Editor
  5. {
  6. [ComponentEditor(typeof(MarkLine))]
  7. public class MarkLineEditor : MainComponentEditor<MarkLine>
  8. {
  9. public override void OnInspectorGUI()
  10. {
  11. ++EditorGUI.indentLevel;
  12. PropertyField("m_SerieIndex");
  13. PropertyField("m_OnTop");
  14. PropertyField("m_Animation");
  15. PropertyListField("m_Data", true);
  16. --EditorGUI.indentLevel;
  17. }
  18. }
  19. [CustomPropertyDrawer(typeof(MarkLineData), true)]
  20. public class MarkLineDataDrawer : BasePropertyDrawer
  21. {
  22. public override string ClassName { get { return "MarkLineData"; } }
  23. public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
  24. {
  25. base.OnGUI(pos, prop, label);
  26. if (MakeComponentFoldout(prop, "", true))
  27. {
  28. ++EditorGUI.indentLevel;
  29. var type = (MarkLineType) (prop.FindPropertyRelative("m_Type")).enumValueIndex;
  30. var group = prop.FindPropertyRelative("m_Group").intValue;
  31. PropertyField(prop, "m_Type");
  32. PropertyField(prop, "m_Name");
  33. switch (type)
  34. {
  35. case MarkLineType.None:
  36. PropertyField(prop, "m_XPosition");
  37. PropertyField(prop, "m_YPosition");
  38. PropertyField(prop, "m_XValue");
  39. PropertyField(prop, "m_YValue");
  40. break;
  41. case MarkLineType.Min:
  42. case MarkLineType.Max:
  43. case MarkLineType.Average:
  44. case MarkLineType.Median:
  45. PropertyField(prop, "m_Dimension");
  46. break;
  47. }
  48. PropertyField(prop, "m_Group");
  49. if (group > 0 && type == MarkLineType.None) PropertyField(prop, "m_ZeroPosition");
  50. PropertyField(prop, "m_LineStyle");
  51. PropertyField(prop, "m_StartSymbol");
  52. PropertyField(prop, "m_EndSymbol");
  53. PropertyField(prop, "m_Label");
  54. --EditorGUI.indentLevel;
  55. }
  56. }
  57. }
  58. }