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; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |