static void RemoveTessellationMaterials() { var materials = Resources.FindObjectsOfTypeAll <Material>(); var litShader = Shader.Find("HDRenderPipeline/Lit"); var layeredLitShader = Shader.Find("HDRenderPipeline/LayeredLit"); foreach (var mat in materials) { if (mat.shader.name == "HDRenderPipeline/LitTessellation") { mat.shader = litShader; // We remove all keyword already present CoreEditorUtils.RemoveMaterialKeywords(mat); LitGUI.SetupMaterialKeywordsAndPass(mat); EditorUtility.SetDirty(mat); } else if (mat.shader.name == "HDRenderPipeline/LayeredLitTessellation") { mat.shader = layeredLitShader; // We remove all keyword already present CoreEditorUtils.RemoveMaterialKeywords(mat); LayeredLitGUI.SetupMaterialKeywordsAndPass(mat); EditorUtility.SetDirty(mat); } } }
static void ResetAllMaterialKeywords() { try { Object[] materials = Resources.FindObjectsOfTypeAll <Material>(); for (int i = 0, length = materials.Length; i < length; i++) { Material mat = materials[i] as Material; EditorUtility.DisplayProgressBar( "Setup materials Keywords...", string.Format("{0} / {1} materials cleaned.", i, length), i / (float)(length - 1)); if (mat.shader.name == "HDRenderPipeline/LayeredLit" || mat.shader.name == "HDRenderPipeline/LayeredLitTessellation") { // We remove all keyword already present RemoveMaterialKeywords(mat); LayeredLitGUI.SetupMaterialKeywordsAndPass(mat); EditorUtility.SetDirty(mat); } else if (mat.shader.name == "HDRenderPipeline/Lit" || mat.shader.name == "HDRenderPipeline/LitTessellation") { // We remove all keyword already present RemoveMaterialKeywords(mat); LitGUI.SetupMaterialKeywordsAndPass(mat); EditorUtility.SetDirty(mat); } else if (mat.shader.name == "HDRenderPipeline/Unlit") { // We remove all keyword already present RemoveMaterialKeywords(mat); UnlitGUI.SetupMaterialKeywordsAndPass(mat); EditorUtility.SetDirty(mat); } } } finally { EditorUtility.ClearProgressBar(); } }