diff --git a/Scripts/Editor/PieChartEditor.cs b/Scripts/Editor/PieChartEditor.cs
index 02612038..ea4471f5 100644
--- a/Scripts/Editor/PieChartEditor.cs
+++ b/Scripts/Editor/PieChartEditor.cs
@@ -15,13 +15,11 @@ namespace XCharts
{
base.OnEnable();
m_Target = (PieChart)target;
- m_Pie = serializedObject.FindProperty("m_Pie");
}
protected override void OnEndInspectorGUI()
{
base.OnEndInspectorGUI();
- EditorGUILayout.PropertyField(m_Pie, true);
}
}
}
\ No newline at end of file
diff --git a/Scripts/Editor/PropertyDrawers/PieDrawer.cs b/Scripts/Editor/PropertyDrawers/PieDrawer.cs
deleted file mode 100644
index 8454d6df..00000000
--- a/Scripts/Editor/PropertyDrawers/PieDrawer.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using UnityEditor;
-using UnityEngine;
-
-namespace XCharts
-{
- [CustomPropertyDrawer(typeof(Pie), true)]
- public class PieInfoDrawer : PropertyDrawer
- {
- SerializedProperty m_Name;
- SerializedProperty m_InsideRadius;
- SerializedProperty m_OutsideRadius;
- SerializedProperty m_TooltipExtraRadius;
- SerializedProperty m_Rose;
- SerializedProperty m_Space;
- SerializedProperty m_Left;
- SerializedProperty m_Right;
- SerializedProperty m_Top;
- SerializedProperty m_Bottom;
- SerializedProperty m_Selected;
- SerializedProperty m_SelectedIndex;
- SerializedProperty m_SelectedOffset;
- bool m_PieModuleToggle = true;
-
- private void InitProperty(SerializedProperty prop)
- {
- m_TooltipExtraRadius = prop.FindPropertyRelative("m_TooltipExtraRadius");
- m_SelectedOffset = prop.FindPropertyRelative("m_SelectedOffset");
- }
-
- public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
- {
- InitProperty(prop);
- Rect drawRect = pos;
- drawRect.height = EditorGUIUtility.singleLineHeight;
- ChartEditorHelper.MakeFoldout(ref drawRect, ref m_PieModuleToggle, "Pie");
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_PieModuleToggle)
- {
- ++EditorGUI.indentLevel;
- EditorGUI.PropertyField(drawRect, m_TooltipExtraRadius);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_SelectedOffset);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
-
- --EditorGUI.indentLevel;
- }
- }
-
- public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
- {
- if (m_PieModuleToggle)
- return 3 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
- else
- return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- }
- }
-}
\ No newline at end of file
diff --git a/Scripts/Editor/PropertyDrawers/PieDrawer.cs.meta b/Scripts/Editor/PropertyDrawers/PieDrawer.cs.meta
deleted file mode 100644
index 0253eab3..00000000
--- a/Scripts/Editor/PropertyDrawers/PieDrawer.cs.meta
+++ /dev/null
@@ -1,13 +0,0 @@
-fileFormatVersion: 2
-guid: 019eadbd43e952945925f357ae8ef74b
-timeCreated: 1554773154
-licenseType: Free
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Scripts/Editor/PropertyDrawers/SettingsDrawer.cs b/Scripts/Editor/PropertyDrawers/SettingsDrawer.cs
index f8f9e015..be05feb8 100644
--- a/Scripts/Editor/PropertyDrawers/SettingsDrawer.cs
+++ b/Scripts/Editor/PropertyDrawers/SettingsDrawer.cs
@@ -18,6 +18,8 @@ namespace XCharts
SerializedProperty m_LineSegmentDistance = prop.FindPropertyRelative("m_LineSegmentDistance");
SerializedProperty m_CicleSmoothness = prop.FindPropertyRelative("m_CicleSmoothness");
SerializedProperty m_VisualMapTriangeLen = prop.FindPropertyRelative("m_VisualMapTriangeLen");
+ SerializedProperty m_PieTooltipExtraRadius = prop.FindPropertyRelative("m_PieTooltipExtraRadius");
+ SerializedProperty m_PieSelectedOffset = prop.FindPropertyRelative("m_PieSelectedOffset");
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SettingsModuleToggle, "Settings");
EditorGUI.LabelField(drawRect, "Settings", EditorStyles.boldLabel);
@@ -35,6 +37,10 @@ namespace XCharts
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_VisualMapTriangeLen);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ EditorGUI.PropertyField(drawRect, m_PieTooltipExtraRadius);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ EditorGUI.PropertyField(drawRect, m_PieSelectedOffset);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
--EditorGUI.indentLevel;
}
}
@@ -44,7 +50,7 @@ namespace XCharts
int num = 1;
if (m_SettingsModuleToggle)
{
- num = 6;
+ num = 8;
}
return num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
}
diff --git a/Scripts/UI/Component/Main/Pie.cs b/Scripts/UI/Component/Main/Pie.cs
deleted file mode 100644
index dacace2f..00000000
--- a/Scripts/UI/Component/Main/Pie.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using UnityEngine;
-
-namespace XCharts
-{
- ///
- /// the global setting of pie chart.
- /// 饼图的全局设置。
- ///
- [System.Serializable]
- public class Pie : MainComponent
- {
- [SerializeField] private float m_TooltipExtraRadius;
- [SerializeField] private float m_SelectedOffset;
- ///
- /// the extra dadius of pie chart when the tooltip indicatored pie.
- /// 提示框指示时的额外半径。
- ///
- public float tooltipExtraRadius { get { return m_TooltipExtraRadius; } set { m_TooltipExtraRadius = value; } }
- ///
- /// the offset of pie when the pie item is selected.
- /// 饼图项被选中时的偏移。
- ///
- public float selectedOffset { get { return m_SelectedOffset; } set { m_SelectedOffset = value; } }
-
- public static Pie defaultPie
- {
- get
- {
- var pie = new Pie
- {
- m_TooltipExtraRadius = 10f,
- m_SelectedOffset = 10f,
- };
- return pie;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Scripts/UI/Component/Main/Pie.cs.meta b/Scripts/UI/Component/Main/Pie.cs.meta
deleted file mode 100644
index 72345d16..00000000
--- a/Scripts/UI/Component/Main/Pie.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: ca364d90ce5fe4605a382e9af984757f
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Scripts/UI/Component/Main/Settings.cs b/Scripts/UI/Component/Main/Settings.cs
index 1b98a994..8abc2054 100644
--- a/Scripts/UI/Component/Main/Settings.cs
+++ b/Scripts/UI/Component/Main/Settings.cs
@@ -15,6 +15,8 @@ namespace XCharts
[SerializeField] [Range(1f, 20)] protected float m_LineSegmentDistance = 3f;
[SerializeField] [Range(1, 10)] protected float m_CicleSmoothness = 2f;
[SerializeField] [Range(10, 50)] protected float m_VisualMapTriangeLen = 20f;
+ [SerializeField] [Range(1, 20)] protected float m_PieTooltipExtraRadius = 8f;
+ [SerializeField] [Range(1, 20)] protected float m_PieSelectedOffset = 8f;
///
/// Curve smoothing factor. By adjusting the smoothing coefficient, the curvature of the curve can be changed,
@@ -47,6 +49,14 @@ namespace XCharts
///
///
public float visualMapTriangeLen { get { return m_VisualMapTriangeLen; } set { m_VisualMapTriangeLen = value <= 0 ? 1f : value; } }
+ ///
+ /// 饼图鼠标移到高亮时的额外半径
+ ///
+ public float pieTooltipExtraRadius { get { return m_PieTooltipExtraRadius; } set { m_PieTooltipExtraRadius = value <= 0 ? 0 : value; } }
+ ///
+ /// 饼图选中时的中心点偏移
+ ///
+ public float pieSelectedOffset { get { return m_PieSelectedOffset; } set { m_PieSelectedOffset = value <= 0 ? 0 : value; } }
}
}
\ No newline at end of file
diff --git a/Scripts/UI/PieChart.cs b/Scripts/UI/PieChart.cs
index a19ee0b2..e562c806 100644
--- a/Scripts/UI/PieChart.cs
+++ b/Scripts/UI/PieChart.cs
@@ -12,14 +12,10 @@ namespace XCharts
[DisallowMultipleComponent]
public class PieChart : BaseChart
{
- [SerializeField] private Pie m_Pie = Pie.defaultPie;
-
private bool isDrawPie;
private bool m_IsEnterLegendButtom;
private bool m_RefreshLabel;
- public Pie pie { get { return m_Pie; } }
-
protected override void Awake()
{
base.Awake();
@@ -30,7 +26,6 @@ namespace XCharts
protected override void Reset()
{
base.Reset();
- m_Pie = Pie.defaultPie;
m_Title.text = "PieChart";
RemoveData();
AddSerie(SerieType.Pie, "serie1");
@@ -103,12 +98,12 @@ namespace XCharts
{
isDataHighlight = true;
color *= 1.2f;
- serieData.pieOutsideRadius += m_Pie.tooltipExtraRadius;
+ serieData.pieOutsideRadius += m_Settings.pieTooltipExtraRadius;
}
var offset = serie.pieSpace;
if (serie.pieClickOffset && serieData.selected)
{
- offset += m_Pie.selectedOffset;
+ offset += m_Settings.pieSelectedOffset;
}
var halfDegree = (serieData.pieToAngle - startDegree) / 2;
serieData.pieHalfAngle = startDegree + halfDegree;
@@ -132,9 +127,9 @@ namespace XCharts
serieData.pieOutsideRadius -= serieData.pieOffsetRadius;
if (serie.pieClickOffset && serieData.selected)
{
- serieData.pieOffsetRadius += m_Pie.selectedOffset;
- if (serieData.pieInsideRadius > 0) serieData.pieInsideRadius += m_Pie.selectedOffset;
- serieData.pieOutsideRadius += m_Pie.selectedOffset;
+ serieData.pieOffsetRadius += m_Settings.pieSelectedOffset;
+ if (serieData.pieInsideRadius > 0) serieData.pieInsideRadius += m_Settings.pieSelectedOffset;
+ serieData.pieOutsideRadius += m_Settings.pieSelectedOffset;
}
serieData.pieOffsetCenter = new Vector3(center.x + serieData.pieOffsetRadius * currSin,