using UnityEngine; using System; public static class MaterialUtility { public static Material GetDefaultSpriteGrayMaterial() { return ResManager.Instance.LoadAsset("Materials", "SpriteGray"); } public static Material GetInstantiatedSpriteGrayMaterial() { var material = new Material(GetDefaultSpriteGrayMaterial()); return material; } public static Material GetSmoothMaskGrayMaterial() { return ResManager.Instance.LoadAsset("Materials", "SmoothMaskGray"); } public static Material GetInstantiatedSpriteTwinkleMaterial() { var material = ResManager.Instance.LoadAsset("Materials", "Flash"); return new Material(material); } public static Material GetUIDefaultGraphicMaterial() { return UnityEngine.UI.Image.defaultGraphicMaterial; } public static Material GetGUIRenderTextureMaterial() { return ResManager.Instance.LoadAsset("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(); for (var i = 0; i < renderers.Length; i++) { var renderer = renderers[i]; renderer.sortingOrder = sortingOrder; } } else { var renderer = root.GetComponent(); if (renderer != null) { renderer.sortingOrder = sortingOrder; } } } }