static void RegenAllShaders()
    {
        var mats = AssetDatabase.FindAssets("t:Material");

        foreach (var m in mats)
        {
            Material mat = AssetDatabase.LoadAssetAtPath <Material> (AssetDatabase.GUIDToAssetPath(m));
            if (mat != null && mat.shader != null)
            {
                if (MicroSplatUtilities.CanFindKeywords(mat))
                {
                    Debug.Log("Regenerating shader " + AssetDatabase.GetAssetPath(mat.shader));
                    MicroSplatShaderGUI.MicroSplatCompiler compiler = new MicroSplatShaderGUI.MicroSplatCompiler();
                    compiler.Compile(mat);
                }
            }
        }
    }