增加双坐标轴支持

This commit is contained in:
monitor1394
2019-07-13 16:38:38 +08:00
parent d3f7980a6d
commit aff1b21bd3
41 changed files with 59457 additions and 1452 deletions

View File

@@ -7,30 +7,15 @@ namespace XCharts
[CustomPropertyDrawer(typeof(Axis), true)]
public class AxisDrawer : PropertyDrawer
{
private ReorderableList m_DataList;
private bool m_DataFoldout = false;
private int m_DataSize = 0;
private bool m_ShowJsonDataArea = false;
private string m_JsonDataAreaText;
private bool m_AxisModuleToggle = false;
private void InitReorderableList(SerializedProperty prop)
protected virtual string GetDisplayName(string displayName)
{
if (m_DataList == null)
{
SerializedProperty data = prop.FindPropertyRelative("m_Data");
m_DataList = new ReorderableList(data.serializedObject, data, false, false, true, true);
m_DataList.elementHeight = EditorGUIUtility.singleLineHeight;
m_DataList.drawHeaderCallback += delegate (Rect rect)
{
EditorGUI.LabelField(rect, data.displayName);
};
m_DataList.drawElementCallback = delegate (Rect rect, int index, bool isActive, bool isFocused)
{
EditorGUI.PropertyField(rect, data.GetArrayElementAtIndex(index), true);
};
}
return displayName;
}
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
@@ -54,7 +39,7 @@ namespace XCharts
SerializedProperty m_Min = prop.FindPropertyRelative("m_Min");
SerializedProperty m_Max = prop.FindPropertyRelative("m_Max");
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisModuleToggle, prop.displayName, m_Show);
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisModuleToggle, GetDisplayName(prop.displayName), m_Show);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (m_AxisModuleToggle)
{

View File

@@ -3,7 +3,7 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Axis.AxisLabel), true)]
[CustomPropertyDrawer(typeof(AxisLabel), true)]
public class AxisLabelDrawer : PropertyDrawer
{
private bool m_AxisLabelToggle = false;

View File

@@ -3,7 +3,7 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Axis.AxisLine), true)]
[CustomPropertyDrawer(typeof(AxisLine), true)]
public class AxisLineDrawer : PropertyDrawer
{
private bool m_AxisLineToggle = false;

View File

@@ -3,7 +3,7 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Axis.AxisName), true)]
[CustomPropertyDrawer(typeof(AxisName), true)]
public class AxisNameDrawer : PropertyDrawer
{
private bool m_AxisNameToggle = false;

View File

@@ -3,14 +3,13 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Axis.SplitArea), true)]
[CustomPropertyDrawer(typeof(AxisSplitArea), true)]
public class AxisSplitAreaDrawer : PropertyDrawer
{
private bool m_ColorFoldout = false;
private int m_ColorSize = 0;
private bool m_SplitAreaToggle = false;
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
{
Rect drawRect = pos;

View File

@@ -3,7 +3,7 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Axis.AxisTick), true)]
[CustomPropertyDrawer(typeof(AxisTick), true)]
public class AxisTickDrawer : PropertyDrawer
{
private bool m_AxisTickToggle = false;

View File

@@ -20,6 +20,7 @@ namespace XCharts
//SerializedProperty type = prop.FindPropertyRelative("m_Type");
SerializedProperty name = prop.FindPropertyRelative("m_Name");
SerializedProperty stack = prop.FindPropertyRelative("m_Stack");
SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex");
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
string moduleName = "Serie " + prop.displayName.Split(' ')[1];
@@ -36,6 +37,8 @@ namespace XCharts
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, stack);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_AxisIndex);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
drawRect.width = EditorGUIUtility.labelWidth + 10;
m_DataFoldout = EditorGUI.Foldout(drawRect, m_DataFoldout, "Data");
ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop);
@@ -57,7 +60,7 @@ namespace XCharts
}
else
{
height += 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
if (m_DataFoldout)
{
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");

View File

@@ -0,0 +1,19 @@
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(XAxis), true)]
public class XAxisDrawer : AxisDrawer
{
protected override string GetDisplayName(string displayName)
{
if (displayName.StartsWith("Element"))
{
displayName = displayName.Replace("Element", "X Axis");
}
return displayName;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 723807bbaeaa64991a421011ce530266
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(YAxis), true)]
public class YAxisDrawer : AxisDrawer
{
protected override string GetDisplayName(string displayName)
{
if (displayName.StartsWith("Element"))
{
displayName = displayName.Replace("Element", "Y Axis");
}
return displayName;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6d1fca6c98f3d41fd989d0e41fbd4eb9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: