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(); } }
public ParsedShader(IReadOnlyDictionary <string, ShaderUniformDefinition> uniforms, IReadOnlyDictionary <string, ShaderVaryingDefinition> varyings, IList <ShaderFunctionDefinition> functions, ShaderLightMode lightMode, ShaderBlendMode blendMode, ShaderPreset preset) { Uniforms = uniforms; Varyings = varyings; Functions = functions; LightMode = lightMode; BlendMode = blendMode; Preset = preset; }
public ParsedShader(IReadOnlyDictionary <string, ShaderUniformDefinition> uniforms, IReadOnlyDictionary <string, ShaderVaryingDefinition> varyings, IReadOnlyDictionary <string, ShaderConstantDefinition> constants, IList <ShaderFunctionDefinition> functions, ShaderLightMode lightMode, ShaderBlendMode blendMode, ShaderPreset preset, ICollection <ResourcePath> includes) { Uniforms = uniforms; Varyings = varyings; Functions = functions; LightMode = lightMode; BlendMode = blendMode; Preset = preset; Includes = includes; Constants = constants; }