修复Unity版本兼容问题

This commit is contained in:
monitor1394
2021-02-22 11:02:54 +08:00
parent 4ea5168e9a
commit 09daa2f027
9 changed files with 342 additions and 564 deletions

View File

@@ -18,10 +18,17 @@ namespace XCharts
[CustomEditor(typeof(BaseChart), false)] [CustomEditor(typeof(BaseChart), false)]
public class BaseChartEditor : Editor public class BaseChartEditor : Editor
{ {
#if UNITY_2019_3_OR_NEWER
private const float k_IconWidth = 14; private const float k_IconWidth = 14;
private const float k_IconGap = 0f; private const float k_IconGap = 0f;
private const float k_IconXOffset = 10f; private const float k_IconXOffset = 7f;
private const float k_IconYOffset = -5f; private const float k_IconYOffset = -1f;
#else
private const float k_IconWidth = 14;
private const float k_IconGap = 0f;
private const float k_IconXOffset = 4f;
private const float k_IconYOffset = -3f;
#endif
protected BaseChart m_Chart; protected BaseChart m_Chart;
protected SerializedProperty m_Script; protected SerializedProperty m_Script;
@@ -197,12 +204,13 @@ namespace XCharts
for (int i = 0; i < prop.arraySize; i++) for (int i = 0; i < prop.arraySize; i++)
{ {
EditorGUILayout.PropertyField(prop.GetArrayElementAtIndex(i), true); EditorGUILayout.PropertyField(prop.GetArrayElementAtIndex(i), true);
EditorGUILayout.Space(); var currRect = EditorGUILayout.GetControlRect(GUILayout.Height(0));
var currRect = EditorGUILayout.GetControlRect(); currRect.y -= EditorGUI.GetPropertyHeight(prop.GetArrayElementAtIndex(i));
var rect1 = new Rect(currRect.width + k_IconXOffset, var rect1 = new Rect(currRect.width + k_IconXOffset,
currRect.y + k_IconYOffset, currRect.y + k_IconYOffset,
k_IconWidth, EditorGUIUtility.singleLineHeight); k_IconWidth, EditorGUIUtility.singleLineHeight);
var oldColor = GUI.contentColor;
GUI.contentColor = Color.black;
if (GUI.Button(rect1, ChartEditorHelper.Styles.iconRemove, ChartEditorHelper.Styles.invisibleButton)) if (GUI.Button(rect1, ChartEditorHelper.Styles.iconRemove, ChartEditorHelper.Styles.invisibleButton))
{ {
if (i < prop.arraySize && i >= 0) prop.DeleteArrayElementAtIndex(i); if (i < prop.arraySize && i >= 0) prop.DeleteArrayElementAtIndex(i);
@@ -221,7 +229,7 @@ namespace XCharts
{ {
if (i > 0) prop.MoveArrayElement(i, i - 1); if (i > 0) prop.MoveArrayElement(i, i - 1);
} }
GUI.contentColor = oldColor;
} }
EditorGUI.indentLevel--; EditorGUI.indentLevel--;
} }

View File

@@ -22,7 +22,6 @@ namespace XCharts
{ {
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type"); SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase"); SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase");
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType"); SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType");
Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex; Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex;
var chart = prop.serializedObject.targetObject as BaseChart; var chart = prop.serializedObject.targetObject as BaseChart;

View File

@@ -86,6 +86,12 @@ namespace XCharts
m_DrawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; m_DrawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
protected void AddHeight(float height)
{
m_Heights[m_KeyName] += height;
m_DrawRect.y += height;
}
protected void PropertyListField(SerializedProperty prop, string relativePropName, bool showOrder = true) protected void PropertyListField(SerializedProperty prop, string relativePropName, bool showOrder = true)
{ {
if (IngorePropertys.Contains(relativePropName)) return; if (IngorePropertys.Contains(relativePropName)) return;
@@ -106,6 +112,25 @@ namespace XCharts
} }
} }
protected void PropertyFieldLimitMin(SerializedProperty prop, string relativePropName, float minValue)
{
if (IngorePropertys.Contains(relativePropName)) return;
if (!ChartEditorHelper.PropertyFieldWithMinValue(ref m_DrawRect, m_Heights, m_KeyName, prop,
relativePropName, minValue))
{
Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName);
}
}
protected void PropertyFieldLimitMax(SerializedProperty prop, string relativePropName, float maxValue)
{
if (IngorePropertys.Contains(relativePropName)) return;
if (!ChartEditorHelper.PropertyFieldWithMaxValue(ref m_DrawRect, m_Heights, m_KeyName, prop,
relativePropName, maxValue))
{
Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName);
}
}
protected void PropertyField(SerializedProperty prop, SerializedProperty relativeProp) protected void PropertyField(SerializedProperty prop, SerializedProperty relativeProp)
{ {
if (!ChartEditorHelper.PropertyField(ref m_DrawRect, m_Heights, m_KeyName, relativeProp)) if (!ChartEditorHelper.PropertyField(ref m_DrawRect, m_Heights, m_KeyName, relativeProp))
@@ -118,7 +143,8 @@ namespace XCharts
{ {
PropertyTwoFiled(prop, prop.FindPropertyRelative(relativeListProp), labelName); PropertyTwoFiled(prop, prop.FindPropertyRelative(relativeListProp), labelName);
} }
protected void PropertyTwoFiled(SerializedProperty prop, SerializedProperty relativeListProp, string labelName = null) protected void PropertyTwoFiled(SerializedProperty prop, SerializedProperty relativeListProp,
string labelName = null)
{ {
if (string.IsNullOrEmpty(labelName)) if (string.IsNullOrEmpty(labelName))
{ {
@@ -132,12 +158,14 @@ namespace XCharts
{ {
if (string.IsNullOrEmpty(relativePropName)) if (string.IsNullOrEmpty(relativePropName))
{ {
return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, m_DisplayName, null); return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName,
m_DisplayName, null);
} }
else else
{ {
var relativeProp = prop.FindPropertyRelative(relativePropName); var relativeProp = prop.FindPropertyRelative(relativePropName);
return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName, m_DisplayName, relativeProp); return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName,
m_DisplayName, relativeProp);
} }
} }

View File

@@ -12,94 +12,24 @@ using UnityEngine;
namespace XCharts namespace XCharts
{ {
[CustomPropertyDrawer(typeof(Serie), true)] [CustomPropertyDrawer(typeof(Serie), true)]
public class SerieDrawer : PropertyDrawer public class SerieDrawer : BasePropertyDrawer
{ {
private Dictionary<string, bool> m_SerieModuleToggle = new Dictionary<string, bool>();
private List<bool> m_DataFoldout = new List<bool>();
private bool m_ShowJsonDataArea = false;
private string m_JsonDataAreaText;
private bool m_IsPolar = false; private bool m_IsPolar = false;
private List<bool> m_DataFoldout = new List<bool>();
public override string ClassName { get { return "Serie"; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
{ {
Rect drawRect = pos; pos.width -= 9;
drawRect.height = EditorGUIUtility.singleLineHeight; base.OnGUI(pos, prop, label);
SerializedProperty show = prop.FindPropertyRelative("m_Show"); var type = prop.FindPropertyRelative("m_Type");
SerializedProperty type = prop.FindPropertyRelative("m_Type"); if (!MakeFoldout(prop, "m_Show"))
SerializedProperty name = prop.FindPropertyRelative("m_Name");
SerializedProperty stack = prop.FindPropertyRelative("m_Stack");
SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex");
SerializedProperty m_XAxisIndex = prop.FindPropertyRelative("m_XAxisIndex");
SerializedProperty m_YAxisIndex = prop.FindPropertyRelative("m_YAxisIndex");
SerializedProperty m_RadarType = prop.FindPropertyRelative("m_RadarType");
SerializedProperty m_RadarIndex = prop.FindPropertyRelative("m_RadarIndex");
SerializedProperty m_VesselIndex = prop.FindPropertyRelative("m_VesselIndex");
SerializedProperty m_PolarIndex = prop.FindPropertyRelative("m_PolarIndex");
SerializedProperty m_MinShow = prop.FindPropertyRelative("m_MinShow");
SerializedProperty m_MaxShow = prop.FindPropertyRelative("m_MaxShow");
SerializedProperty m_MaxCache = prop.FindPropertyRelative("m_MaxCache");
SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle");
SerializedProperty m_ItemStyle = prop.FindPropertyRelative("m_ItemStyle");
SerializedProperty m_LineArrow = prop.FindPropertyRelative("m_LineArrow");
SerializedProperty m_LineType = prop.FindPropertyRelative("m_LineType");
SerializedProperty m_SampleDist = prop.FindPropertyRelative("m_SampleDist");
SerializedProperty m_SampleType = prop.FindPropertyRelative("m_SampleType");
SerializedProperty m_SampleAverage = prop.FindPropertyRelative("m_SampleAverage");
SerializedProperty m_BarType = prop.FindPropertyRelative("m_BarType");
SerializedProperty m_BarPercentStack = prop.FindPropertyRelative("m_BarPercentStack");
SerializedProperty m_BarWidth = prop.FindPropertyRelative("m_BarWidth");
SerializedProperty m_BarGap = prop.FindPropertyRelative("m_BarGap");
SerializedProperty m_BarZebraWidth = prop.FindPropertyRelative("m_BarZebraWidth");
SerializedProperty m_BarZebraGap = prop.FindPropertyRelative("m_BarZebraGap");
SerializedProperty m_AreaStyle = prop.FindPropertyRelative("m_AreaStyle");
SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol");
SerializedProperty m_RoseType = prop.FindPropertyRelative("m_RoseType");
SerializedProperty m_Space = prop.FindPropertyRelative("m_Space");
SerializedProperty m_Center = prop.FindPropertyRelative("m_Center");
SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius");
SerializedProperty m_Label = prop.FindPropertyRelative("m_Label");
SerializedProperty m_Emphasis = prop.FindPropertyRelative("m_Emphasis");
SerializedProperty m_Animation = prop.FindPropertyRelative("m_Animation");
SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension");
SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName");
SerializedProperty m_ShowDataIcon = prop.FindPropertyRelative("m_ShowDataIcon");
SerializedProperty m_Min = prop.FindPropertyRelative("m_Min");
SerializedProperty m_Max = prop.FindPropertyRelative("m_Max");
SerializedProperty m_StartAngle = prop.FindPropertyRelative("m_StartAngle");
SerializedProperty m_EndAngle = prop.FindPropertyRelative("m_EndAngle");
SerializedProperty m_RingGap = prop.FindPropertyRelative("m_RingGap");
SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
SerializedProperty m_Clockwise = prop.FindPropertyRelative("m_Clockwise");
SerializedProperty m_RoundCap = prop.FindPropertyRelative("m_RoundCap");
SerializedProperty m_GaugeType = prop.FindPropertyRelative("m_GaugeType");
SerializedProperty m_GaugeAxis = prop.FindPropertyRelative("m_GaugeAxis");
SerializedProperty m_GaugePointer = prop.FindPropertyRelative("m_GaugePointer");
SerializedProperty m_TitleStyle = prop.FindPropertyRelative("m_TitleStyle");
SerializedProperty m_Clip = prop.FindPropertyRelative("m_Clip");
SerializedProperty m_Ignore = prop.FindPropertyRelative("m_Ignore");
SerializedProperty m_IgnoreValue = prop.FindPropertyRelative("m_IgnoreValue");
SerializedProperty m_ShowAsPositiveNumber = prop.FindPropertyRelative("m_ShowAsPositiveNumber");
SerializedProperty m_Large = prop.FindPropertyRelative("m_Large");
SerializedProperty m_LargeThreshold = prop.FindPropertyRelative("m_LargeThreshold");
SerializedProperty m_AvoidLabelOverlap = prop.FindPropertyRelative("m_AvoidLabelOverlap");
SerializedProperty m_WaveHeight = prop.FindPropertyRelative("m_WaveHeight");
SerializedProperty m_WaveLength = prop.FindPropertyRelative("m_WaveLength");
SerializedProperty m_WaveSpeed = prop.FindPropertyRelative("m_WaveSpeed");
SerializedProperty m_WaveOffset = prop.FindPropertyRelative("m_WaveOffset");
SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data");
int index = InitToggle(prop);
string moduleName = "Serie " + index;
var toggle = ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieModuleToggle, prop, moduleName, show);
if (!toggle)
{ {
var orderButton = 48; var orderButton = 48;
var gap = 4; var gap = 4;
var drawRect = pos;
drawRect.x += EditorGUIUtility.labelWidth + gap; drawRect.x += EditorGUIUtility.labelWidth + gap;
drawRect.width = pos.width - drawRect.x + ChartEditorHelper.BOOL_WIDTH - orderButton; drawRect.width = pos.width - drawRect.x + ChartEditorHelper.BOOL_WIDTH - orderButton;
EditorGUI.PropertyField(drawRect, type, GUIContent.none); EditorGUI.PropertyField(drawRect, type, GUIContent.none);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
else else
{ {
@@ -107,351 +37,240 @@ namespace XCharts
m_IsPolar = chart is PolarChart; m_IsPolar = chart is PolarChart;
var serieType = (SerieType)type.enumValueIndex; var serieType = (SerieType)type.enumValueIndex;
++EditorGUI.indentLevel; ++EditorGUI.indentLevel;
drawRect.x = pos.x; PropertyField(prop, "m_Type");
drawRect.width = pos.width; PropertyField(prop, "m_Name");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, type);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, name);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
switch (serieType) switch (serieType)
{ {
case SerieType.Line: case SerieType.Line:
EditorGUI.PropertyField(drawRect, stack); PropertyField(prop, "m_Stack");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (m_IsPolar) if (m_IsPolar)
{ {
EditorGUI.PropertyField(drawRect, m_PolarIndex); PropertyField(prop, "m_PolarIndex");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
else else
{ {
EditorGUI.PropertyField(drawRect, m_XAxisIndex); PropertyField(prop, "m_XAxisIndex");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_YAxisIndex");
EditorGUI.PropertyField(drawRect, m_YAxisIndex);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
EditorGUI.PropertyField(drawRect, m_MinShow); PropertyFieldLimitMin(prop, "m_MinShow", 0);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyFieldLimitMin(prop, "m_MaxShow", 0);
EditorGUI.PropertyField(drawRect, m_MaxShow); PropertyFieldLimitMin(prop, "m_MaxCache", 0);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_LineType");
EditorGUI.PropertyField(drawRect, m_MaxCache); PropertyField(prop, "m_SampleDist");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_SampleType");
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0; PropertyField(prop, "m_SampleAverage");
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0; PropertyField(prop, "m_Clip");
if (m_MaxCache.intValue < 0) m_MaxCache.intValue = 0; PropertyField(prop, "m_Ignore");
EditorGUI.PropertyField(drawRect, m_LineType); PropertyField(prop, "m_IgnoreValue");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_ShowAsPositiveNumber");
EditorGUI.PropertyField(drawRect, m_SampleDist); PropertyField(prop, "m_Large");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_LargeThreshold");
EditorGUI.PropertyField(drawRect, m_SampleType); PropertyField(prop, "m_Symbol");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_LineStyle");
EditorGUI.PropertyField(drawRect, m_SampleAverage); PropertyField(prop, "m_LineArrow");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_ItemStyle");
EditorGUI.PropertyField(drawRect, m_Clip); PropertyField(prop, "m_AreaStyle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Label");
EditorGUI.PropertyField(drawRect, m_Ignore); PropertyField(prop, "m_Emphasis");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_IgnoreValue);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_ShowAsPositiveNumber);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_Large);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_LargeThreshold);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_Symbol);
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol);
EditorGUI.PropertyField(drawRect, m_LineStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
EditorGUI.PropertyField(drawRect, m_LineArrow);
drawRect.y += EditorGUI.GetPropertyHeight(m_LineArrow);
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_AreaStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Bar: case SerieType.Bar:
EditorGUI.PropertyField(drawRect, stack); PropertyField(prop, "m_Stack");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (m_IsPolar) if (m_IsPolar)
{ {
EditorGUI.PropertyField(drawRect, m_PolarIndex); PropertyField(prop, "m_PolarIndex");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
else else
{ {
EditorGUI.PropertyField(drawRect, m_XAxisIndex); PropertyField(prop, "m_XAxisIndex");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_YAxisIndex");
EditorGUI.PropertyField(drawRect, m_YAxisIndex);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
EditorGUI.PropertyField(drawRect, m_MinShow); PropertyFieldLimitMin(prop, "m_MinShow", 0);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyFieldLimitMin(prop, "m_MaxShow", 0);
EditorGUI.PropertyField(drawRect, m_MaxShow); PropertyFieldLimitMin(prop, "m_MaxCache", 0);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_BarType");
EditorGUI.PropertyField(drawRect, m_MaxCache); PropertyField(prop, "m_BarPercentStack");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_BarWidth");
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0; PropertyField(prop, "m_BarGap");
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0; PropertyField(prop, "m_BarZebraWidth");
if (m_MaxCache.intValue < 0) m_MaxCache.intValue = 0; PropertyField(prop, "m_BarZebraGap");
EditorGUI.PropertyField(drawRect, m_BarType); PropertyField(prop, "m_Clip");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Ignore");
EditorGUI.PropertyField(drawRect, m_BarPercentStack); PropertyField(prop, "m_IgnoreValue");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_ShowAsPositiveNumber");
EditorGUI.PropertyField(drawRect, m_BarWidth); PropertyField(prop, "m_Large");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_LargeThreshold");
EditorGUI.PropertyField(drawRect, m_BarGap); PropertyField(prop, "m_ItemStyle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Label");
EditorGUI.PropertyField(drawRect, m_BarZebraWidth); PropertyField(prop, "m_Emphasis");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_BarZebraGap);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_Clip);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_Ignore);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_IgnoreValue);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_ShowAsPositiveNumber);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_Large);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_LargeThreshold);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Pie: case SerieType.Pie:
EditorGUI.PropertyField(drawRect, m_RoseType); PropertyField(prop, "m_RoseType");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Space");
EditorGUI.PropertyField(drawRect, m_Space); PropertyTwoFiled(prop, "m_Center");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyTwoFiled(prop, "m_Radius");
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); PropertyField(prop, "m_RoundCap");
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); PropertyField(prop, "m_Ignore");
EditorGUI.PropertyField(drawRect, m_RoundCap); PropertyField(prop, "m_IgnoreValue");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_AvoidLabelOverlap");
EditorGUI.PropertyField(drawRect, m_Ignore); PropertyField(prop, "m_ItemStyle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Label");
EditorGUI.PropertyField(drawRect, m_IgnoreValue); PropertyField(prop, "m_Emphasis");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_AvoidLabelOverlap);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Ring: case SerieType.Ring:
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); PropertyTwoFiled(prop, "m_Center");
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); PropertyTwoFiled(prop, "m_Radius");
EditorGUI.PropertyField(drawRect, m_StartAngle); PropertyField(prop, "m_StartAngle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_RingGap");
EditorGUI.PropertyField(drawRect, m_RingGap); PropertyField(prop, "m_RoundCap");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Clockwise");
EditorGUI.PropertyField(drawRect, m_RoundCap); PropertyField(prop, "m_TitleStyle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_ItemStyle");
EditorGUI.PropertyField(drawRect, m_Clockwise); PropertyField(prop, "m_Label");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Emphasis");
EditorGUI.PropertyField(drawRect, m_TitleStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_TitleStyle);
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Radar: case SerieType.Radar:
EditorGUI.PropertyField(drawRect, m_RadarType); PropertyField(prop, "m_RadarType");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_RadarIndex");
EditorGUI.PropertyField(drawRect, m_RadarIndex); PropertyField(prop, "m_Symbol");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_LineStyle");
EditorGUI.PropertyField(drawRect, m_Symbol); PropertyField(prop, "m_ItemStyle");
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); PropertyField(prop, "m_AreaStyle");
EditorGUI.PropertyField(drawRect, m_LineStyle); PropertyField(prop, "m_Label");
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle); PropertyField(prop, "m_Emphasis");
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_AreaStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Scatter: case SerieType.Scatter:
case SerieType.EffectScatter: case SerieType.EffectScatter:
EditorGUI.PropertyField(drawRect, m_Clip); PropertyField(prop, "m_Clip");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Symbol");
EditorGUI.PropertyField(drawRect, m_Symbol); PropertyField(prop, "m_ItemStyle");
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); PropertyField(prop, "m_Label");
EditorGUI.PropertyField(drawRect, m_ItemStyle); PropertyField(prop, "m_Emphasis");
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Heatmap: case SerieType.Heatmap:
EditorGUI.PropertyField(drawRect, m_Ignore); PropertyField(prop, "m_Ignore");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_IgnoreValue");
EditorGUI.PropertyField(drawRect, m_IgnoreValue); PropertyField(prop, "m_ItemStyle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Label");
EditorGUI.PropertyField(drawRect, m_ItemStyle); PropertyField(prop, "m_Emphasis");
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Gauge: case SerieType.Gauge:
EditorGUI.PropertyField(drawRect, m_GaugeType); PropertyField(prop, "m_GaugeType");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyTwoFiled(prop, "m_Center");
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); PropertyTwoFiled(prop, "m_Radius");
//ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); PropertyField(prop, "m_Min");
EditorGUI.PropertyField(drawRect, m_Radius.GetArrayElementAtIndex(0), new GUIContent("Radius")); PropertyField(prop, "m_Max");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_StartAngle");
EditorGUI.PropertyField(drawRect, m_Min); PropertyField(prop, "m_EndAngle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyFieldLimitMax(prop, "m_SplitNumber", 36);
EditorGUI.PropertyField(drawRect, m_Max); PropertyField(prop, "m_RoundCap");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_TitleStyle");
EditorGUI.PropertyField(drawRect, m_StartAngle); PropertyField(prop, "m_GaugeAxis");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_GaugePointer");
EditorGUI.PropertyField(drawRect, m_EndAngle); PropertyField(prop, "m_ItemStyle");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Label");
EditorGUI.PropertyField(drawRect, m_SplitNumber); PropertyField(prop, "m_Emphasis");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (m_SplitNumber.intValue > 36)
{
m_SplitNumber.intValue = 36;
}
EditorGUI.PropertyField(drawRect, m_RoundCap);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_TitleStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_TitleStyle);
EditorGUI.PropertyField(drawRect, m_GaugeAxis);
drawRect.y += EditorGUI.GetPropertyHeight(m_GaugeAxis);
EditorGUI.PropertyField(drawRect, m_GaugePointer);
drawRect.y += EditorGUI.GetPropertyHeight(m_GaugePointer);
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
EditorGUI.PropertyField(drawRect, m_Emphasis);
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
break; break;
case SerieType.Liquid: case SerieType.Liquid:
EditorGUI.PropertyField(drawRect, m_VesselIndex); PropertyField(prop, "m_VesselIndex");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_Min");
EditorGUI.PropertyField(drawRect, m_Min); PropertyField(prop, "m_Max");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_WaveLength");
EditorGUI.PropertyField(drawRect, m_Max); PropertyField(prop, "m_WaveHeight");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_WaveSpeed");
EditorGUI.PropertyField(drawRect, m_WaveLength); PropertyField(prop, "m_WaveOffset");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; PropertyField(prop, "m_ItemStyle");
EditorGUI.PropertyField(drawRect, m_WaveHeight); PropertyField(prop, "m_Label");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_WaveSpeed);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_WaveOffset);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_ItemStyle);
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
EditorGUI.PropertyField(drawRect, m_Label);
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
break; break;
} }
EditorGUI.PropertyField(drawRect, m_Animation); PropertyField(prop, "m_Animation");
drawRect.y += EditorGUI.GetPropertyHeight(m_Animation); //PropertyListField(prop, "m_Data");
drawRect.width = EditorGUIUtility.labelWidth + 10; DrawData(pos, prop, serieType, ref m_DrawRect);
m_DataFoldout[index] = EditorGUI.Foldout(drawRect, m_DataFoldout[index], "Data"); --EditorGUI.indentLevel;
drawRect.width = pos.width; }
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; }
if (m_DataFoldout[index])
{
EditorGUI.indentLevel++;
float nameWid = 45; private void DrawData(Rect pos, SerializedProperty prop, SerieType serieType, ref Rect drawRect)
{
SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data");
SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension");
SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName");
SerializedProperty m_ShowDataIcon = prop.FindPropertyRelative("m_ShowDataIcon");
int index = InitToggle(prop);
drawRect.width = EditorGUIUtility.labelWidth + 10;
m_DataFoldout[index] = EditorGUI.Foldout(drawRect, m_DataFoldout[index], "Data");
drawRect.width = pos.width;
AddSingleLineHeight();
if (m_DataFoldout[index])
{
EditorGUI.indentLevel++;
float nameWid = 45;
#if UNITY_2019_3_OR_NEWER #if UNITY_2019_3_OR_NEWER
var gap = 2; var gap = 2;
var namegap = 3; var namegap = 3;
#else #else
var gap = 0; var gap = 0;
var namegap = 0; var namegap = 0;
#endif #endif
EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - 2 * nameWid - 2, pos.height), m_DataDimension); EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - 2 * nameWid - 2, pos.height), m_DataDimension);
var nameRect = new Rect(pos.width - 2 * nameWid + 14 + gap, drawRect.y, nameWid - gap, pos.height); var nameRect = new Rect(pos.width - 2 * nameWid + 14 + gap, drawRect.y, nameWid - gap, pos.height);
if (XChartsSettings.editorBlockEnable) if (XChartsSettings.editorBlockEnable)
{ {
nameRect.x += ChartEditorHelper.BLOCK_WIDTH; nameRect.x += ChartEditorHelper.BLOCK_WIDTH;
}
if (GUI.Button(nameRect, new GUIContent("Name")))
{
m_ShowDataName.boolValue = !m_ShowDataName.boolValue;
}
var iconRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid + namegap, pos.height);
if (XChartsSettings.editorBlockEnable)
{
iconRect.x += ChartEditorHelper.BLOCK_WIDTH;
}
if (GUI.Button(iconRect, new GUIContent("More...")))
{
m_ShowDataIcon.boolValue = !m_ShowDataIcon.boolValue;
}
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
var listSize = m_Datas.arraySize;
listSize = EditorGUI.IntField(drawRect, "Size", listSize);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (listSize < 0) listSize = 0;
if (m_DataDimension.intValue < 1) m_DataDimension.intValue = 1;
int dimension = m_DataDimension.intValue;
bool showName = m_ShowDataName.boolValue;
bool showIcon = m_ShowDataIcon.boolValue;
bool showSelected = (serieType == SerieType.Pie);
if (listSize != m_Datas.arraySize)
{
while (listSize > m_Datas.arraySize) m_Datas.arraySize++;
while (listSize < m_Datas.arraySize) m_Datas.arraySize--;
}
if (listSize > 30 && !XChartsSettings.editorShowAllListData)
{
int num = listSize > 10 ? 10 : listSize;
for (int i = 0; i < num; i++)
{
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
}
if (num >= 10)
{
EditorGUI.LabelField(drawRect, "...");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, listSize - 1, pos.width);
}
}
else
{
for (int i = 0; i < m_Datas.arraySize; i++)
{
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
}
}
drawRect.y += EditorGUIUtility.standardVerticalSpacing;
EditorGUI.indentLevel--;
} }
--EditorGUI.indentLevel; if (GUI.Button(nameRect, new GUIContent("Name")))
{
m_ShowDataName.boolValue = !m_ShowDataName.boolValue;
}
var iconRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid + namegap, pos.height);
if (XChartsSettings.editorBlockEnable)
{
iconRect.x += ChartEditorHelper.BLOCK_WIDTH;
}
if (GUI.Button(iconRect, new GUIContent("More...")))
{
m_ShowDataIcon.boolValue = !m_ShowDataIcon.boolValue;
}
AddSingleLineHeight();
var listSize = m_Datas.arraySize;
listSize = EditorGUI.IntField(drawRect, "Size", listSize);
AddSingleLineHeight();
if (listSize < 0) listSize = 0;
if (m_DataDimension.intValue < 1) m_DataDimension.intValue = 1;
int dimension = m_DataDimension.intValue;
bool showName = m_ShowDataName.boolValue;
bool showIcon = m_ShowDataIcon.boolValue;
bool showSelected = (serieType == SerieType.Pie);
if (listSize != m_Datas.arraySize)
{
while (listSize > m_Datas.arraySize) m_Datas.arraySize++;
while (listSize < m_Datas.arraySize) m_Datas.arraySize--;
}
if (listSize > 30 && !XChartsSettings.editorShowAllListData)
{
int num = listSize > 10 ? 10 : listSize;
for (int i = 0; i < num; i++)
{
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
}
if (num >= 10)
{
EditorGUI.LabelField(drawRect, "...");
AddSingleLineHeight();
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, listSize - 1, pos.width);
}
}
else
{
for (int i = 0; i < m_Datas.arraySize; i++)
{
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
}
}
AddHeight(EditorGUIUtility.standardVerticalSpacing);
EditorGUI.indentLevel--;
} }
} }
@@ -491,7 +310,7 @@ namespace XCharts
{ {
EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + index)); EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + index));
} }
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing; AddHeight(EditorGUI.GetPropertyHeight(element));
} }
else else
{ {
@@ -527,8 +346,7 @@ namespace XCharts
drawRect.width = dataWid + 40 + dimension * namegap; drawRect.width = dataWid + 40 + dimension * namegap;
EditorGUI.PropertyField(drawRect, sereName, GUIContent.none); EditorGUI.PropertyField(drawRect, sereName, GUIContent.none);
} }
AddSingleLineHeight();
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
drawRect.x = lastX; drawRect.x = lastX;
drawRect.width = lastWid; drawRect.width = lastWid;
EditorGUIUtility.fieldWidth = lastFieldWid; EditorGUIUtility.fieldWidth = lastFieldWid;
@@ -547,149 +365,23 @@ namespace XCharts
var m_EnableSymbol = serieData.FindPropertyRelative("m_EnableSymbol"); var m_EnableSymbol = serieData.FindPropertyRelative("m_EnableSymbol");
var m_Symbol = serieData.FindPropertyRelative("m_Symbol"); var m_Symbol = serieData.FindPropertyRelative("m_Symbol");
EditorGUI.PropertyField(drawRect, m_Icon); EditorGUI.PropertyField(drawRect, m_Icon);
drawRect.y += EditorGUI.GetPropertyHeight(m_Icon); AddHeight(EditorGUI.GetPropertyHeight(m_Icon));
EditorGUI.PropertyField(drawRect, m_Symbol); EditorGUI.PropertyField(drawRect, m_Symbol);
ChartEditorHelper.MakeBool(drawRect, m_EnableSymbol, 1, "(enable)"); ChartEditorHelper.MakeBool(drawRect, m_EnableSymbol, 1, "(enable)");
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); AddHeight(EditorGUI.GetPropertyHeight(m_Symbol));
EditorGUI.PropertyField(drawRect, m_Label); EditorGUI.PropertyField(drawRect, m_Label);
ChartEditorHelper.MakeBool(drawRect, m_EnableLabel, 1, "(enable)"); ChartEditorHelper.MakeBool(drawRect, m_EnableLabel, 1, "(enable)");
drawRect.y += EditorGUI.GetPropertyHeight(m_Label); AddHeight(EditorGUI.GetPropertyHeight(m_Label));
EditorGUI.PropertyField(drawRect, m_ItemStyle); EditorGUI.PropertyField(drawRect, m_ItemStyle);
ChartEditorHelper.MakeBool(drawRect, m_EnableItemStyle, 1, "(enable)"); ChartEditorHelper.MakeBool(drawRect, m_EnableItemStyle, 1, "(enable)");
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); AddHeight(EditorGUI.GetPropertyHeight(m_ItemStyle));
EditorGUI.PropertyField(drawRect, m_Emphasis); EditorGUI.PropertyField(drawRect, m_Emphasis);
ChartEditorHelper.MakeBool(drawRect, m_EnableEmphasis, 1, "(enable)"); ChartEditorHelper.MakeBool(drawRect, m_EnableEmphasis, 1, "(enable)");
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); AddHeight(EditorGUI.GetPropertyHeight(m_Emphasis));
EditorGUI.indentLevel -= 2; EditorGUI.indentLevel -= 2;
} }
} }
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
{
float height = 0;
int index = InitToggle(prop);
if (!m_SerieModuleToggle.ContainsKey(prop.propertyPath) || !m_SerieModuleToggle[prop.propertyPath])
{
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
}
else
{
SerializedProperty type = prop.FindPropertyRelative("m_Type");
var serieType = (SerieType)type.enumValueIndex;
switch (serieType)
{
case SerieType.Line:
height += 20 * EditorGUIUtility.singleLineHeight + 19 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineArrow"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AreaStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Bar:
height += 22 * EditorGUIUtility.singleLineHeight + 21 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Pie:
height += 12 * EditorGUIUtility.singleLineHeight + 11 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Ring:
height += 10 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TitleStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Radar:
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AreaStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Scatter:
case SerieType.EffectScatter:
height += 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Heatmap:
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Gauge:
height += 13 * EditorGUIUtility.singleLineHeight + 12 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TitleStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_GaugeAxis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_GaugePointer"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Liquid:
height += 11 * EditorGUIUtility.singleLineHeight + 10 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
}
if (m_DataFoldout[index])
{
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
height += 2 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
int num = m_Data.arraySize;
if (num > 30)
{
num = 11;
height += (num + 1) * EditorGUIUtility.singleLineHeight + (num) * EditorGUIUtility.standardVerticalSpacing;
}
else
{
height += (num) * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
}
height += EditorGUIUtility.standardVerticalSpacing;
if (prop.FindPropertyRelative("m_ShowDataIcon").boolValue)
{
for (int i = 0; i < num; i++)
{
var item = m_Data.GetArrayElementAtIndex(i);
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_IconStyle"));
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_Symbol"));
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_Emphasis"));
}
}
}
if (m_ShowJsonDataArea)
{
height += EditorGUIUtility.singleLineHeight * 4 + EditorGUIUtility.standardVerticalSpacing;
}
return height;
}
}
private int InitToggle(SerializedProperty prop) private int InitToggle(SerializedProperty prop)
{ {
int index = 0; int index = 0;

View File

@@ -14,7 +14,7 @@ public class ChartEditorHelper
#else #else
public const float INDENT_WIDTH = 15; public const float INDENT_WIDTH = 15;
public const float BOOL_WIDTH = 15; public const float BOOL_WIDTH = 15;
public const float ARROW_WIDTH = 13; public const float ARROW_WIDTH = 17.2f;
public const float BLOCK_WIDTH = 0; public const float BLOCK_WIDTH = 0;
public const float GAP_WIDTH = 0; public const float GAP_WIDTH = 0;
#endif #endif
@@ -42,13 +42,17 @@ public class ChartEditorHelper
drawRect = offset.Remove(drawRect); drawRect = offset.Remove(drawRect);
} }
public static void MakeTwoField(ref Rect drawRect, float rectWidth, SerializedProperty arrayProp, string name) public static void MakeTwoField(ref Rect drawRect, float rectWidth, SerializedProperty arrayProp,
string name)
{ {
while (arrayProp.arraySize < 2) arrayProp.arraySize++; while (arrayProp.arraySize < 2) arrayProp.arraySize++;
MakeTwoField(ref drawRect, rectWidth, arrayProp.GetArrayElementAtIndex(0), arrayProp.GetArrayElementAtIndex(1), name); var prop1 = arrayProp.GetArrayElementAtIndex(0);
var prop2 = arrayProp.GetArrayElementAtIndex(1);
MakeTwoField(ref drawRect, rectWidth, prop1, prop2, name);
} }
public static void MakeDivideList(ref Rect drawRect, float rectWidth, SerializedProperty arrayProp, string name, int showNum) public static void MakeDivideList(ref Rect drawRect, float rectWidth, SerializedProperty arrayProp,
string name, int showNum)
{ {
while (arrayProp.arraySize < showNum) arrayProp.arraySize++; while (arrayProp.arraySize < showNum) arrayProp.arraySize++;
EditorGUI.LabelField(drawRect, name); EditorGUI.LabelField(drawRect, name);
@@ -71,7 +75,8 @@ public class ChartEditorHelper
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
} }
public static void MakeTwoField(ref Rect drawRect, float rectWidth, SerializedProperty prop1, SerializedProperty prop2, string name) public static void MakeTwoField(ref Rect drawRect, float rectWidth, SerializedProperty prop1,
SerializedProperty prop2, string name)
{ {
EditorGUI.LabelField(drawRect, name); EditorGUI.LabelField(drawRect, name);
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + GAP_WIDTH; var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + GAP_WIDTH;
@@ -135,21 +140,23 @@ public class ChartEditorHelper
{ {
float defaultWidth = drawRect.width; float defaultWidth = drawRect.width;
float defaultX = drawRect.x; float defaultX = drawRect.x;
var style = bold ? Styles.foldoutStyle : EditorStyles.foldout;
drawRect.width = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH; drawRect.width = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH;
moduleToggle = EditorGUI.Foldout(drawRect, moduleToggle, content, bold ? Styles.foldoutStyle : EditorStyles.foldout); moduleToggle = EditorGUI.Foldout(drawRect, moduleToggle, content, style);
MakeBool(drawRect, prop); MakeBool(drawRect, prop);
drawRect.width = defaultWidth; drawRect.width = defaultWidth;
drawRect.x = defaultX; drawRect.x = defaultX;
return moduleToggle; return moduleToggle;
} }
public static bool MakeFoldout(ref Rect drawRect, Dictionary<string, float> heights, Dictionary<string, bool> moduleToggle, public static bool MakeFoldout(ref Rect drawRect, Dictionary<string, float> heights,
string key, string content, SerializedProperty prop, bool bold = false) Dictionary<string, bool> moduleToggle, string key, string content, SerializedProperty prop, bool bold = false)
{ {
float defaultWidth = drawRect.width; float defaultWidth = drawRect.width;
float defaultX = drawRect.x; float defaultX = drawRect.x;
drawRect.width = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH; var style = bold ? Styles.foldoutStyle : EditorStyles.foldout;
moduleToggle[key] = EditorGUI.Foldout(drawRect, moduleToggle[key], content, bold ? Styles.foldoutStyle : EditorStyles.foldout); drawRect.width = EditorGUIUtility.labelWidth;
moduleToggle[key] = EditorGUI.Foldout(drawRect, moduleToggle[key], content, style);
if (prop != null) if (prop != null)
{ {
if (prop.propertyType == SerializedPropertyType.Boolean) if (prop.propertyType == SerializedPropertyType.Boolean)
@@ -201,10 +208,11 @@ public class ChartEditorHelper
drawRect.x = defaultX; drawRect.x = defaultX;
} }
public static bool MakeFoldout(ref Rect drawRect, ref float height, ref Dictionary<string, bool> moduleToggle, SerializedProperty prop, public static bool MakeFoldout(ref Rect drawRect, ref float height, ref Dictionary<string, bool> moduleToggle,
string moduleName, string showPropName, bool bold = false) SerializedProperty prop, string moduleName, string showPropName, bool bold = false)
{ {
var flag = MakeFoldout(ref drawRect, ref moduleToggle, prop, moduleName, prop.FindPropertyRelative(showPropName), bold); var relativeProp = prop.FindPropertyRelative(showPropName);
var flag = MakeFoldout(ref drawRect, ref moduleToggle, prop, moduleName, relativeProp, bold);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
return flag; return flag;
@@ -256,13 +264,15 @@ public class ChartEditorHelper
return toggle; return toggle;
} }
public static bool MakeListWithFoldout(ref Rect drawRect, SerializedProperty listProp, bool foldout, bool showOrder = false, bool showSize = true) public static bool MakeListWithFoldout(ref Rect drawRect, SerializedProperty listProp, bool foldout,
bool showOrder = false, bool showSize = true)
{ {
var height = 0f; var height = 0f;
return MakeListWithFoldout(ref drawRect, ref height, listProp, foldout, showOrder, showSize); return MakeListWithFoldout(ref drawRect, ref height, listProp, foldout, showOrder, showSize);
} }
public static bool MakeListWithFoldout(ref Rect drawRect, ref float height, SerializedProperty listProp, bool foldout, bool showOrder = false, bool showSize = true) public static bool MakeListWithFoldout(ref Rect drawRect, ref float height, SerializedProperty listProp,
bool foldout, bool showOrder = false, bool showSize = true)
{ {
var rawWidth = drawRect.width; var rawWidth = drawRect.width;
drawRect.width = EditorGUIUtility.labelWidth + 10; drawRect.width = EditorGUIUtility.labelWidth + 10;
@@ -277,17 +287,19 @@ public class ChartEditorHelper
return flag; return flag;
} }
public static void MakeList(ref Rect drawRect, SerializedProperty listProp, bool showOrder = false, bool showSize = true) public static void MakeList(ref Rect drawRect, SerializedProperty listProp, bool showOrder = false,
bool showSize = true)
{ {
var height = 0f; var height = 0f;
MakeList(ref drawRect, ref height, listProp, showOrder, showSize); MakeList(ref drawRect, ref height, listProp, showOrder, showSize);
} }
public static void MakeList(ref Rect drawRect, ref float height, SerializedProperty listProp, bool showOrder = false, bool showSize = true) public static void MakeList(ref Rect drawRect, ref float height, SerializedProperty listProp,
bool showOrder = false, bool showSize = true)
{ {
EditorGUI.indentLevel++; EditorGUI.indentLevel++;
var listSize = listProp.arraySize; var listSize = listProp.arraySize;
var iconWidth = 15; var iconWidth = 14;
var iconGap = 3f; var iconGap = 3f;
if (showSize) if (showSize)
{ {
@@ -300,7 +312,9 @@ public class ChartEditorHelper
{ {
iconRect.x += BLOCK_WIDTH; iconRect.x += BLOCK_WIDTH;
} }
if (GUI.Button(iconRect, Styles.iconAdd)) var oldColor = GUI.contentColor;
GUI.contentColor = Color.black;
if (GUI.Button(iconRect, Styles.iconAdd, Styles.invisibleButton))
{ {
if (listProp.displayName.Equals("Series")) if (listProp.displayName.Equals("Series"))
{ {
@@ -312,6 +326,7 @@ public class ChartEditorHelper
listProp.arraySize++; listProp.arraySize++;
} }
} }
GUI.contentColor = oldColor;
listSize = listProp.arraySize; listSize = listProp.arraySize;
listSize = EditorGUI.IntField(elementRect, "Size", listSize); listSize = EditorGUI.IntField(elementRect, "Size", listSize);
} }
@@ -358,11 +373,10 @@ public class ChartEditorHelper
SerializedProperty element = listProp.GetArrayElementAtIndex(i); SerializedProperty element = listProp.GetArrayElementAtIndex(i);
if (showOrder) if (showOrder)
{ {
var temp = INDENT_WIDTH + GAP_WIDTH + iconGap; var temp = INDENT_WIDTH + GAP_WIDTH + iconGap;
var isSerie = "Serie".Equals(element.type); var isSerie = "Serie".Equals(element.type);
var elementRect = isSerie var elementRect = isSerie
? new Rect(drawRect.x, drawRect.y, drawRect.width + INDENT_WIDTH - iconGap, drawRect.height) ? new Rect(drawRect.x, drawRect.y, drawRect.width + INDENT_WIDTH - 2 * iconGap, drawRect.height)
: new Rect(drawRect.x, drawRect.y, drawRect.width - 3 * iconWidth, drawRect.height); : new Rect(drawRect.x, drawRect.y, drawRect.width - 3 * iconWidth, drawRect.height);
EditorGUI.PropertyField(elementRect, element, new GUIContent("Element " + i)); EditorGUI.PropertyField(elementRect, element, new GUIContent("Element " + i));
var iconRect = new Rect(drawRect.width - 3 * iconWidth + temp, drawRect.y, iconWidth, drawRect.height); var iconRect = new Rect(drawRect.width - 3 * iconWidth + temp, drawRect.y, iconWidth, drawRect.height);
@@ -370,7 +384,9 @@ public class ChartEditorHelper
{ {
iconRect.x += BLOCK_WIDTH; iconRect.x += BLOCK_WIDTH;
} }
if (GUI.Button(iconRect, Styles.iconUp)) var oldColor = GUI.contentColor;
GUI.contentColor = Color.black;
if (GUI.Button(iconRect, Styles.iconUp, Styles.invisibleButton))
{ {
if (i > 0) listProp.MoveArrayElement(i, i - 1); if (i > 0) listProp.MoveArrayElement(i, i - 1);
} }
@@ -379,7 +395,7 @@ public class ChartEditorHelper
{ {
iconRect.x += BLOCK_WIDTH; iconRect.x += BLOCK_WIDTH;
} }
if (GUI.Button(iconRect, Styles.iconDown)) if (GUI.Button(iconRect, Styles.iconDown, Styles.invisibleButton))
{ {
if (i < listProp.arraySize - 1) listProp.MoveArrayElement(i, i + 1); if (i < listProp.arraySize - 1) listProp.MoveArrayElement(i, i + 1);
} }
@@ -388,7 +404,7 @@ public class ChartEditorHelper
{ {
iconRect.x += BLOCK_WIDTH; iconRect.x += BLOCK_WIDTH;
} }
if (GUI.Button(iconRect, Styles.iconRemove)) if (GUI.Button(iconRect, Styles.iconRemove, Styles.invisibleButton))
{ {
if (i < listProp.arraySize && i >= 0) listProp.DeleteArrayElementAtIndex(i); if (i < listProp.arraySize && i >= 0) listProp.DeleteArrayElementAtIndex(i);
} }
@@ -397,6 +413,7 @@ public class ChartEditorHelper
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing; height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
} }
GUI.contentColor = oldColor;
} }
else else
{ {
@@ -409,23 +426,62 @@ public class ChartEditorHelper
EditorGUI.indentLevel--; EditorGUI.indentLevel--;
} }
public static bool PropertyField(ref Rect drawRect, Dictionary<string, float> heights, string key, SerializedProperty prop) public static bool PropertyField(ref Rect drawRect, Dictionary<string, float> heights, string key,
SerializedProperty prop)
{ {
if (prop == null) if (prop == null) return false;
{
return false;
}
EditorGUI.PropertyField(drawRect, prop, true); EditorGUI.PropertyField(drawRect, prop, true);
var hig = EditorGUI.GetPropertyHeight(prop); var hig = EditorGUI.GetPropertyHeight(prop);
// var hig = prop.hasVisibleChildren
// ? EditorGUI.GetPropertyHeight(prop)
// : EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
drawRect.y += hig; drawRect.y += hig;
heights[key] += hig; heights[key] += hig;
return true; return true;
} }
public static bool PropertyField(ref Rect drawRect, Dictionary<string, float> heights, string key, SerializedProperty parentProp, string relativeName)
public static bool PropertyFieldWithMinValue(ref Rect drawRect, Dictionary<string, float> heights, string key,
SerializedProperty prop, float minValue)
{
if (prop == null) return false;
EditorGUI.PropertyField(drawRect, prop, true);
if (prop.propertyType == SerializedPropertyType.Float && prop.floatValue < minValue)
prop.floatValue = minValue;
if (prop.propertyType == SerializedPropertyType.Integer && prop.intValue < minValue)
prop.intValue = (int)minValue;
var hig = EditorGUI.GetPropertyHeight(prop);
drawRect.y += hig;
heights[key] += hig;
return true;
}
public static bool PropertyFieldWithMaxValue(ref Rect drawRect, Dictionary<string, float> heights, string key,
SerializedProperty prop, float maxValue)
{
if (prop == null) return false;
EditorGUI.PropertyField(drawRect, prop, true);
if (prop.propertyType == SerializedPropertyType.Float && prop.floatValue > maxValue)
prop.floatValue = maxValue;
if (prop.propertyType == SerializedPropertyType.Integer && prop.intValue > maxValue)
prop.intValue = (int)maxValue;
var hig = EditorGUI.GetPropertyHeight(prop);
drawRect.y += hig;
heights[key] += hig;
return true;
}
public static bool PropertyField(ref Rect drawRect, Dictionary<string, float> heights, string key,
SerializedProperty parentProp, string relativeName)
{ {
return PropertyField(ref drawRect, heights, key, parentProp.FindPropertyRelative(relativeName)); return PropertyField(ref drawRect, heights, key, parentProp.FindPropertyRelative(relativeName));
} }
public static bool PropertyFieldWithMinValue(ref Rect drawRect, Dictionary<string, float> heights, string key,
SerializedProperty parentProp, string relativeName, float minValue)
{
var relativeProp = parentProp.FindPropertyRelative(relativeName);
return PropertyFieldWithMinValue(ref drawRect, heights, key, relativeProp, minValue);
}
public static bool PropertyFieldWithMaxValue(ref Rect drawRect, Dictionary<string, float> heights, string key,
SerializedProperty parentProp, string relativeName, float maxValue)
{
var relativeProp = parentProp.FindPropertyRelative(relativeName);
return PropertyFieldWithMaxValue(ref drawRect, heights, key, relativeProp, maxValue);
}
} }

View File

@@ -26,7 +26,6 @@ namespace XCharts
private float m_DataZoomLastStartIndex; private float m_DataZoomLastStartIndex;
private float m_DataZoomLastEndIndex; private float m_DataZoomLastEndIndex;
private bool m_CheckDataZoomLabel; private bool m_CheckDataZoomLabel;
private Dictionary<int, List<Serie>> m_StackSeries = new Dictionary<int, List<Serie>>();
protected override void InitComponent() protected override void InitComponent()
{ {

View File

@@ -228,7 +228,6 @@ namespace XCharts
labelRadius = serie.runtimeOutsideRadius + serieLabel.lineLength1; labelRadius = serie.runtimeOutsideRadius + serieLabel.lineLength1;
labelCenter = new Vector2(serie.runtimeCenterPos.x + labelRadius * Mathf.Sin(currRad), labelCenter = new Vector2(serie.runtimeCenterPos.x + labelRadius * Mathf.Sin(currRad),
serie.runtimeCenterPos.y + labelRadius * Mathf.Cos(currRad)); serie.runtimeCenterPos.y + labelRadius * Mathf.Cos(currRad));
float labelWidth = serieData.labelObject.label.GetPreferredWidth();
serieData.labelPosition = labelCenter; serieData.labelPosition = labelCenter;
} }
break; break;

View File

@@ -100,7 +100,6 @@ namespace XCharts
public static void DrawLineStyle(VertexHelper vh, LineStyle.Type lineType, float lineWidth, public static void DrawLineStyle(VertexHelper vh, LineStyle.Type lineType, float lineWidth,
Vector3 startPos, Vector3 endPos, Color32 color) Vector3 startPos, Vector3 endPos, Color32 color)
{ {
var type = lineType;
switch (lineType) switch (lineType)
{ {
case LineStyle.Type.Dashed: case LineStyle.Type.Dashed:

View File

@@ -12,7 +12,6 @@ namespace XCharts
public class XChartsPackageResourceImporter public class XChartsPackageResourceImporter
{ {
bool m_EssentialResourcesImported; bool m_EssentialResourcesImported;
bool m_ExamplesAndExtrasResourcesImported;
public XChartsPackageResourceImporter() { } public XChartsPackageResourceImporter() { }
@@ -23,7 +22,6 @@ namespace XCharts
public void OnGUI() public void OnGUI()
{ {
m_EssentialResourcesImported = File.Exists("Assets/XCharts/Resources/XChartsSettings.asset"); m_EssentialResourcesImported = File.Exists("Assets/XCharts/Resources/XChartsSettings.asset");
m_ExamplesAndExtrasResourcesImported = Directory.Exists("Assets/XCharts/Examples & Extras");
GUILayout.BeginVertical(); GUILayout.BeginVertical();
{ {