mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-25 18:30:14 +00:00
修复调用UpdateDataName()接口时不会自动刷新的问题
This commit is contained in:
69
Examples/Runtime/Example31_PieUpdateName.cs
Normal file
69
Examples/Runtime/Example31_PieUpdateName.cs
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
/******************************************/
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) 2018 monitor1394 */
|
||||||
|
/* https://github.com/monitor1394 */
|
||||||
|
/* */
|
||||||
|
/******************************************/
|
||||||
|
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace XCharts.Examples
|
||||||
|
{
|
||||||
|
[DisallowMultipleComponent]
|
||||||
|
[ExecuteInEditMode]
|
||||||
|
public class Example31_PieUpdateName : MonoBehaviour
|
||||||
|
{
|
||||||
|
PieChart chart;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
chart = gameObject.GetComponent<PieChart>();
|
||||||
|
if (chart == null)
|
||||||
|
{
|
||||||
|
chart = gameObject.AddComponent<PieChart>();
|
||||||
|
}
|
||||||
|
var serieIndex = 0;
|
||||||
|
var serie = chart.series.GetSerie(serieIndex);
|
||||||
|
if (serie == null) return;
|
||||||
|
serie.label.show = true;
|
||||||
|
serie.label.position = SerieLabel.Position.Outside;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (Input.GetKeyDown(KeyCode.Space))
|
||||||
|
{
|
||||||
|
if (count % 2 == 0) ResetSameName();
|
||||||
|
else UpdateDataName();
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateDataName()
|
||||||
|
{
|
||||||
|
var serieIndex = 0;
|
||||||
|
var serie = chart.series.GetSerie(serieIndex);
|
||||||
|
if (serie == null) return;
|
||||||
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
|
{
|
||||||
|
var value = Random.Range(10, 100);
|
||||||
|
chart.UpdateData(serieIndex, i, value);
|
||||||
|
chart.UpdateDataName(serieIndex, i, "value=" + value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResetSameName()
|
||||||
|
{
|
||||||
|
var serieIndex = 0;
|
||||||
|
var serie = chart.series.GetSerie(serieIndex);
|
||||||
|
if (serie == null) return;
|
||||||
|
for (int i = 0; i < serie.dataCount; i++)
|
||||||
|
{
|
||||||
|
chart.UpdateDataName(serieIndex, i, "piename");
|
||||||
|
}
|
||||||
|
chart.themeInfo.SetAllDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Examples/Runtime/Example31_PieUpdateName.cs.meta
Normal file
11
Examples/Runtime/Example31_PieUpdateName.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 41195ee7a652f4ef79c22c365d314621
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -99,6 +99,7 @@ namespace XCharts
|
|||||||
{
|
{
|
||||||
base.ClearDirty();
|
base.ClearDirty();
|
||||||
ClearLabelDirty();
|
ClearLabelDirty();
|
||||||
|
SeriesHelper.ClearNameDirty(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -131,7 +131,6 @@ namespace XCharts
|
|||||||
protected virtual void Update()
|
protected virtual void Update()
|
||||||
{
|
{
|
||||||
CheckSize();
|
CheckSize();
|
||||||
CheckLegend();
|
|
||||||
CheckComponent();
|
CheckComponent();
|
||||||
CheckPointerPos();
|
CheckPointerPos();
|
||||||
CheckTooltip();
|
CheckTooltip();
|
||||||
@@ -142,6 +141,24 @@ namespace XCharts
|
|||||||
|
|
||||||
protected virtual void CheckComponent()
|
protected virtual void CheckComponent()
|
||||||
{
|
{
|
||||||
|
if (m_Series.anyDirty)
|
||||||
|
{
|
||||||
|
if (m_Series.vertsDirty) RefreshChart();
|
||||||
|
if (SeriesHelper.IsLabelDirty(m_Series)) m_ReinitLabel = true;
|
||||||
|
if (SeriesHelper.IsNeedLabelUpdate(m_Series) && !m_RefreshChart) m_RefreshLabel = true;
|
||||||
|
if (SeriesHelper.IsLabelDirty(m_Series)) m_ReinitLabel = true;
|
||||||
|
foreach (var serie in m_Series.list)
|
||||||
|
{
|
||||||
|
if (serie.titleStyle.componentDirty) m_ReinitTitle = true;
|
||||||
|
if (serie.nameDirty)
|
||||||
|
{
|
||||||
|
m_Legend.SetAllDirty();
|
||||||
|
RefreshChart();
|
||||||
|
serie.ClearNameDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_Series.ClearDirty();
|
||||||
|
}
|
||||||
if (m_ThemeInfo.anyDirty)
|
if (m_ThemeInfo.anyDirty)
|
||||||
{
|
{
|
||||||
if (m_CheckTheme != m_ThemeInfo.theme)
|
if (m_CheckTheme != m_ThemeInfo.theme)
|
||||||
@@ -188,17 +205,6 @@ namespace XCharts
|
|||||||
RefreshChart();
|
RefreshChart();
|
||||||
m_Settings.ClearDirty();
|
m_Settings.ClearDirty();
|
||||||
}
|
}
|
||||||
if (m_Series.anyDirty)
|
|
||||||
{
|
|
||||||
if (m_Series.vertsDirty) RefreshChart();
|
|
||||||
if (SeriesHelper.IsLabelDirty(m_Series)) m_ReinitLabel = true;
|
|
||||||
if (SeriesHelper.IsNeedLabelUpdate(m_Series) && !m_RefreshChart) m_RefreshLabel = true;
|
|
||||||
foreach (var serie in m_Series.list)
|
|
||||||
{
|
|
||||||
if (serie.titleStyle.componentDirty) m_ReinitTitle = true;
|
|
||||||
}
|
|
||||||
m_Series.ClearDirty();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnEnable()
|
protected override void OnEnable()
|
||||||
@@ -581,23 +587,6 @@ namespace XCharts
|
|||||||
OnSizeChanged();
|
OnSizeChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckLegend()
|
|
||||||
{
|
|
||||||
if (m_Legend.show)
|
|
||||||
{
|
|
||||||
foreach (var serie in series.list)
|
|
||||||
{
|
|
||||||
if (serie.nameDirty)
|
|
||||||
{
|
|
||||||
m_Legend.SetAllDirty();
|
|
||||||
serie.ClearNameDirty();
|
|
||||||
RefreshChart();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckPointerPos()
|
private void CheckPointerPos()
|
||||||
{
|
{
|
||||||
if (m_ForceOpenRaycastTarget) raycastTarget = true;
|
if (m_ForceOpenRaycastTarget) raycastTarget = true;
|
||||||
|
|||||||
@@ -31,6 +31,23 @@ namespace XCharts
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsNameDirty(Series series)
|
||||||
|
{
|
||||||
|
foreach (var serie in series.list)
|
||||||
|
{
|
||||||
|
if (serie.nameDirty) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearNameDirty(Series series)
|
||||||
|
{
|
||||||
|
foreach (var serie in series.list)
|
||||||
|
{
|
||||||
|
serie.ClearNameDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsLegalLegendName(string name)
|
public static bool IsLegalLegendName(string name)
|
||||||
{
|
{
|
||||||
int numName = -1;
|
int numName = -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user