using System.Collections.Generic; using UnityEngine; namespace XCharts { public static class ChartCached { private static Dictionary s_ValueToF1Str = new Dictionary(1000); private static Dictionary s_ValueToF2Str = new Dictionary(1000); private static Dictionary s_ValueToStr = new Dictionary(1000); private static Dictionary s_IntToStr = new Dictionary(1000); private static Dictionary s_ColorToStr = new Dictionary(1000); public static string FloatToStr(float value, int f = 0) { if (f > 2) f = 2; Dictionary valueDic; if (f == 1) valueDic = s_ValueToF1Str; else if (f == 2) valueDic = s_ValueToF2Str; else valueDic = s_ValueToStr; if (valueDic.ContainsKey(value)) { return valueDic[value]; } else { if (f == 1) valueDic[value] = value.ToString("f1"); else if (f == 2) valueDic[value] = value.ToString("f2"); else valueDic[value] = value.ToString(); return valueDic[value]; } } public static string IntToStr(int value) { if (s_IntToStr.ContainsKey(value)) { return s_IntToStr[value]; } else { s_IntToStr[value] = value.ToString(); return s_IntToStr[value]; } } public static string ColorToStr(Color color) { if (s_ColorToStr.ContainsKey(color)) { return s_ColorToStr[color]; } else { s_ColorToStr[color] = ColorUtility.ToHtmlStringRGBA(color); return s_ColorToStr[color]; } } } }