| using UnityEngine; | 
| using System; | 
|   | 
|   | 
| public static class MaterialUtility | 
| { | 
|   | 
|     public static Material GetDefaultSpriteGrayMaterial() | 
|     { | 
|         return ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "SpriteGray"); | 
|     } | 
|   | 
|     public static Material GetInstantiatedSpriteGrayMaterial() | 
|     { | 
|         var material = new Material(GetDefaultSpriteGrayMaterial()); | 
|         return material; | 
|     } | 
|   | 
|     public static Material GetSmoothMaskGrayMaterial() | 
|     { | 
|         return ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "SmoothMaskGray"); | 
|     } | 
|   | 
|     public static Material GetInstantiatedSpriteTwinkleMaterial() | 
|     { | 
|         var material = ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "Flash"); | 
|         return new Material(material); | 
|     } | 
|   | 
|     public static Material GetUIDefaultGraphicMaterial() | 
|     { | 
|         return UnityEngine.UI.Image.defaultGraphicMaterial; | 
|     } | 
|   | 
|     public static Material GetGUIRenderTextureMaterial() | 
|     { | 
|         return ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "UI_RenderTexture"); | 
|     } | 
|   | 
|     public static void SetRenderSortingOrder(this GameObject root, int sortingOrder, bool includeChildren) | 
|     { | 
|   | 
|         if (root == null) | 
|         { | 
|             throw new NullReferenceException(); | 
|         } | 
|   | 
|         if (includeChildren) | 
|         { | 
|             var renderers = root.GetComponentsInChildren<Renderer>(); | 
|             for (var i = 0; i < renderers.Length; i++) | 
|             { | 
|                 var renderer = renderers[i]; | 
|                 renderer.sortingOrder = sortingOrder; | 
|             } | 
|         } | 
|         else | 
|         { | 
|             var renderer = root.GetComponent<Renderer>(); | 
|             if (renderer != null) | 
|             { | 
|                 renderer.sortingOrder = sortingOrder; | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
| } |