public void AddPreset() { if (template == null) { return; } var folder = EditorUtility.OpenFolderPanel("保存ShaderLab预设", Application.dataPath, ""); if (!string.IsNullOrEmpty(folder)) { var Newfolder = AssetDatabase.GUIDToAssetPath(AssetDatabase.CreateFolder(PathTools.File2Asset(folder), template.GetValue(ShaderTemplate.K_Name))); AssetDatabase.Refresh(); ShaderPreset preset = new ShaderPreset(); Preset templatePre = new Preset(this.template); preset.Template = templatePre; AssetDatabase.CreateAsset(templatePre, Path.Combine(Newfolder, template.TemplateName + ".preset")); foreach (var item in elements) { Preset elementPre = new Preset(item); AssetDatabase.CreateAsset(elementPre, Path.Combine(Newfolder, item.TemplateName + ".preset")); preset.Elements.Add(elementPre); } AssetDatabase.CreateAsset(preset, Path.Combine(Newfolder, template.GetValue(ShaderTemplate.K_Name) + ".asset")); AssetDatabase.Refresh(); } }