| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- using System.Collections.Generic;
 
- using UnityEngine;
 
- namespace XCharts.Runtime
 
- {
 
-     public static class SerieLabelPool
 
-     {
 
-         private static readonly Stack<GameObject> m_Stack = new Stack<GameObject>(200);
 
-         private static Dictionary<int, bool> m_ReleaseDic = new Dictionary<int, bool>(1000);
 
-         public static GameObject Get(string name, Transform parent, LabelStyle label, Color color,
 
-             float iconWidth, float iconHeight, ThemeStyle theme)
 
-         {
 
-             GameObject element;
 
-             if (m_Stack.Count == 0 || !Application.isPlaying)
 
-             {
 
-                 element = CreateSerieLabel(name, parent, label, color, iconWidth, iconHeight, theme);
 
-             }
 
-             else
 
-             {
 
-                 element = m_Stack.Pop();
 
-                 if (element == null)
 
-                 {
 
-                     element = CreateSerieLabel(name, parent, label, color, iconWidth, iconHeight, theme);
 
-                 }
 
-                 m_ReleaseDic.Remove(element.GetInstanceID());
 
-                 element.name = name;
 
-                 element.transform.SetParent(parent);
 
-                 var text = new ChartText(element);
 
-                 text.SetColor(color);
 
-                 text.SetFontAndSizeAndStyle(label.textStyle, theme.common);
 
-                 ChartHelper.SetActive(element, true);
 
-             }
 
-             element.transform.localEulerAngles = new Vector3(0, 0, label.rotate);
 
-             return element;
 
-         }
 
-         public static void Release(GameObject element)
 
-         {
 
-             if (element == null) return;
 
-             ChartHelper.SetActive(element, false);
 
-             if (!Application.isPlaying) return;
 
-             if (!m_ReleaseDic.ContainsKey(element.GetInstanceID()))
 
-             {
 
-                 m_Stack.Push(element);
 
-                 m_ReleaseDic.Add(element.GetInstanceID(), true);
 
-             }
 
-         }
 
-         public static void ReleaseAll(Transform parent)
 
-         {
 
-             int count = parent.childCount;
 
-             for (int i = 0; i < count; i++)
 
-             {
 
-                 Release(parent.GetChild(i).gameObject);
 
-             }
 
-         }
 
-         public static void ClearAll()
 
-         {
 
-             m_Stack.Clear();
 
-             m_ReleaseDic.Clear();
 
-         }
 
-         private static GameObject CreateSerieLabel(string name, Transform parent, LabelStyle labelStyle, Color color,
 
-             float iconWidth, float iconHeight, ThemeStyle theme)
 
-         {
 
-             var label = ChartHelper.AddChartLabel(name, parent, labelStyle, theme.common,
 
-                 "", color, TextAnchor.MiddleCenter);
 
-             label.SetActive(labelStyle.show);
 
-             return label.gameObject;
 
-         }
 
-     }
 
- }
 
 
  |