public static GraphicMaterialSource GetMaterialSource(UnityEngine.UI.Graphic graphic)
        {
            using (var lst = TempCollection.GetList <GraphicMaterialSource>())
            {
                graphic.GetComponents <GraphicMaterialSource>(lst);
                for (int i = 0; i < lst.Count; i++)
                {
                    if (lst[i]._graphics == graphic)
                    {
                        return(lst[i]);
                    }
                }
            }

            var source = graphic.gameObject.AddComponent <GraphicMaterialSource>();

            source._graphics = graphic;
            return(source);
        }