public static GrayAtlas GetGrayAtlas(NGUIAtlas a) { if (inst == null) { var go = new GameObject("GrayAtlasPool", typeof(GrayAtlasPool)); inst = go.GetComponent <GrayAtlasPool>(); } return(inst.GetGray(a)); }
void OnDestroy() { foreach (var pair in pool) { Destroy(pair.Value.gray); } pool.Clear(); inst = null; }
public static void ToGrayscale(this UISprite s, bool gray) { if (s == null || s.atlas == null) { return; } if (gray) { GrayAtlas a = GrayAtlasPool.GetGrayAtlas(s.atlas.origin()); s.atlas = a.gray; } else { if (GrayAtlasPool.HasGrayAtlas(s.atlas.origin())) { GrayAtlas a = GrayAtlasPool.GetGrayAtlas(s.atlas.origin()); s.atlas = a.src; } } }