Beispiel #1
0
        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();
            }
        }