protected override void OnEnable() { if (indexState == null) { indexState = new TreeViewState(); } libIndex = new SeanLibIndex(indexState, true); libIndex.RefreshTreeData(this); libIndex.SetSelection(new List <int>() { EditorPrefs.GetInt(IndexKey, 1) }); VisualElement root = rootVisualElement; var visualTree = AssetDBHelper.LoadAsset <VisualTreeAsset>(FileAsset.BaseType, FileAsset.UXML); var styleSheet = AssetDBHelper.LoadAsset <StyleSheet>(FileAsset.BaseType, FileAsset.USS); root.styleSheets.Add(styleSheet); visualTree.CloneTree(root); //目录 EditorIndex = root.Q <VisualElement>("EditorIndex"); EditorIndexContent_IMGUI = EditorIndex.Q <IMGUIContainer>("EditorIndexContent_IMGUI"); EditorIndexContent_IMGUI.onGUIHandler = () => { libIndex.OnGUI(EditorIndexContent_IMGUI.contentRect); }; //内容 EditorContent = root.Q <VisualElement>("EditorContent"); }
public override void Action(int instanceId, string pathName, string resourceFile) { var template = AssetDBHelper.LoadAsset <UnityEngine.Object>(resourceFile); FileTools.Copy(PathTools.Asset2File(AssetDatabase.GetAssetPath(template)), pathName, true); AssetDatabase.Refresh(); }
public override void Action(int instanceId, string pathName, string resourceFile) { var template = Object.Instantiate(AssetDBHelper.LoadAsset <TemplateAsset>(resourceFile)); DestroyImmediate(template); FileTools.WriteAllText(pathName, template.Template); AssetDatabase.Refresh(); }
public override void OnEnable(SeanLibManager drawer) { template = null; shaderTemplates.Clear(); elementTemplates.Clear(); shaderPresets.Clear(); elements.Clear(); elementTemplates.AddRange(AssetDBHelper.LoadAssets <ShaderElement>("t:" + typeof(ShaderElement))); shaderTemplates.AddRange(AssetDBHelper.LoadAssets <ShaderTemplate>("t:" + typeof(ShaderTemplate))); shaderPresets.AddRange(AssetDBHelper.LoadAssets <ShaderPreset>("t:" + typeof(ShaderPreset))); base.OnEnable(drawer); }
public virtual void SetupElements(VisualElement container, ShaderLibrary Lab) { VisualTreeAsset nodeAsset = AssetDBHelper.LoadAsset <VisualTreeAsset>(files.BaseType, files.UXML); StyleSheet style = AssetDBHelper.LoadAsset <StyleSheet>(files.BaseType, files.USS); var tree = nodeAsset.CloneTree(); container.Add(tree); tree.name = TemplateName; UIRoot = container; UIRoot.styleSheets.Add(style); this.lab = Lab; DefaultSetupElements(); }
//static public static Color Get(string PaletteName, string ColorName, Color ifNull) { ColorPalette palette = null; if (!cache.TryGetValue(PaletteName, out palette)) { if (AssetDBHelper.TryLoadAsset <ColorPalette>(PaletteName + " t: ColorPalette", out palette)) { cache[PaletteName] = palette; return(palette.Get(ColorName, ifNull)); } return(ifNull); } return(palette.Get(ColorName, ifNull)); }
public override void Action(int instanceId, string pathName, string resourceFile) { var csAsset = AssetDBHelper.LoadAsset <FileTemplateAsset>("SeanLibEditorCsTemplate t:FileTemplateAsset"); var uxmlAsset = AssetDBHelper.LoadAsset <FileTemplateAsset>("SeanLibEditorUXMLTemplate t:FileTemplateAsset"); var usslAsset = AssetDBHelper.LoadAsset <FileTemplateAsset>("SeanLibEditorUssTemplate t:FileTemplateAsset"); var dir = Path.GetDirectoryName(pathName); var ClassName = Path.GetFileNameWithoutExtension(pathName); var Values = new List <KeyWordValue>() { new KeyWordValue("#CLASS_NAME#", ClassName) }; csAsset.Generate(Values, dir); uxmlAsset.Generate(Values, dir); usslAsset.Generate(Values, dir); AssetDatabase.Refresh(); }
public override void Action(int instanceId, string pathName, string resourceFile) { var template = Object.Instantiate(AssetDBHelper.LoadAsset <TemplateAsset>(resourceFile)); var input = Path.GetFileNameWithoutExtension(pathName); string code; if (template.KeyWords.Length > 0) { code = template.Generate(new List <KeyWordValue>() { new KeyWordValue(template.KeyWords[0].key, input) }); } else { code = template.Template; } DestroyImmediate(template); FileTools.WriteAllText(pathName, code); AssetDatabase.Refresh(); }
public override void SetupUIElements() { base.SetupUIElements(); //SetupElements //TamplateMask RefreshShaderTemplateMask(); var selectShaderTemplate = EditorContent_Elements.Q <Button>("btn-SelectTemplate"); selectShaderTemplate.clickable.clicked += () => { SelectWindow <ShaderTemplate> .Show(shaderTemplates, "ShaderTemplates", new SelectWindow <ShaderTemplate> .CallBack() { OnSelected = (e, i) => { AddShaderTemplate(e); } }); }; var selectPreset = EditorContent_Elements.Q <Button>("btn-SelectPreset"); selectPreset.clickable.clicked += () => { SelectWindow <ShaderPreset> .Show(shaderPresets, "ShaderPresets", new SelectWindow <ShaderPreset> .CallBack() { OnSelected = (e, i) => { var preset = e; var template = AssetDBHelper.LoadAsset <ShaderTemplate>(preset.Template.name + " t: " + preset.Template.GetTargetTypeName()); var Ins_template = AddShaderTemplate(template); preset.Template.ApplyTo(Ins_template); foreach (var item in preset.Elements) { var ele = AssetDBHelper.LoadAsset <ShaderElement>(item.GetTargetTypeName() + " t: " + item.GetTargetTypeName()); var Ins_ele = AddShadeElement(ele); item.ApplyTo(Ins_ele); } } }); }; //ToolBox var addBtn = this.EditorContent_Elements.Q <ToolbarButton>("ToolBar_Add"); addBtn.clickable.clicked += () => { SelectWindow <ShaderElement> .Show(elementTemplates, "ElementsTemplates", new SelectWindow <ShaderElement> .CallBack() { OnSelected = (e, i) => { AddShadeElement(e); }, WindowSize = () => new Vector2(400, elementTemplates.Count * 25 + 40), DrawSelection = (e, i) => { if (e.AllowMultipleCount > 0) { var count = elements.FindAll(e1 => e1.GetType() == e.GetType()).Count; if (count >= e.AllowMultipleCount) { OnGUIUtility.Vision.GUIEnabled(false); } } if (e == null) { if (GUILayout.Button("null", SelectWindow <ShaderElement> .Styles.Selection)) { SelectWindow <ShaderElement> .instance.Select(default(ShaderElement), i); SelectWindow <ShaderElement> .instance.editorWindow.Close(); return; } } else if (SelectWindow <ShaderElement> .instance.searchField.GeneralValid(e.ToString())) { if (GUILayout.Button(e.ToString(), SelectWindow <ShaderElement> .Styles.Selection)) { SelectWindow <ShaderElement> .instance.Select(e, i); SelectWindow <ShaderElement> .instance.editorWindow.Close(); return; } } OnGUIUtility.Vision.GUIEnabled(true); } }); }; var addPresetBtn = this.EditorContent_Elements.Q <ToolbarButton>("ToolBar_Preset"); addPresetBtn.clickable.clicked += () => { AddPreset(); }; //TemplateContainer //Container ShaderElementsContainer = this.EditorContent_Elements.Q <ScrollView>("ElementContainer"); ShaderElementsContainer.Clear(); //TODO:添加快捷键操作 ShaderElementsContainer.AddManipulator(new ContainerManipulator(this)); //Preivew InitPreview(); //Generate var genrateButton = this.EditorContent_Elements.Q <Button>("btn-generate"); genrateButton.clickable.clicked += OnGenerate; }
public static T LoadTemplateAsset <T>(string search) where T : TemplateAsset { return(AssetDBHelper.LoadAsset <T>(search)); }
public GUIGifDrawer() { icon_play = AssetDBHelper.LoadAsset <Texture2D>(this.GetType(), "../ic_play.png"); icon_pause = AssetDBHelper.LoadAsset <Texture2D>(this.GetType(), "../ic_pause.png"); }
public override void SetupUIElements() { base.SetupUIElements(); //ColorPalettes ColorPaletteObjs.Clear(); var ColorPaletteAssets = AssetDBHelper.LoadAssets <ColorPalette>(" t:ColorPalette"); var ColorPalettesRoot = new Foldout() { text = "ColorPalettes" }; var DocHub = new Foldout() { text = "DocHub" }; EditorContent_Elements.Add(ColorPalettesRoot); EditorContent_Elements.Add(DocHub); foreach (var item in ColorPaletteAssets) { ColorPaletteObjs.Add(new SerializedObject(item)); } IMGUIContainer OnGUIColorPalette = new IMGUIContainer(() => { v = EditorGUILayout.BeginScrollView(v); foreach (var sobj in ColorPaletteObjs) { sobj.Update(); EditorGUI.BeginChangeCheck(); { EditorGUILayout.ObjectField(sobj.targetObject, typeof(ColorPalette), false); if (EditorGUIUtility.isProSkin) { EditorGUILayout.PropertyField(sobj.FindProperty("Dark")); } else { EditorGUILayout.PropertyField(sobj.FindProperty("Light")); } GUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); if (GUILayout.Button("Default")) { (sobj.targetObject as ColorPalette).SetDefault(); AssetDatabase.SaveAssets(); } } GUILayout.EndHorizontal(); } if (EditorGUI.EndChangeCheck()) { sobj.ApplyModifiedProperties(); } } EditorGUILayout.EndScrollView(); }); ColorPalettesRoot.Add(OnGUIColorPalette); IMGUIContainer OnGUIDocHub = new IMGUIContainer(() => { v1 = EditorGUILayout.BeginScrollView(v1); EditorGUI.BeginChangeCheck(); var autoGif = EditorGUILayout.Toggle("自动播放Gif", EditorUserSettings.GetConfigValue("DocAutoPlayGif") == "true"); if (EditorGUI.EndChangeCheck()) { EditorUserSettings.SetConfigValue("DocAutoPlayGif", autoGif ? "true" : "false"); } EditorGUILayout.EndScrollView(); }); DocHub.Add(OnGUIDocHub); }