public void RefreshShaderTemplateMask() { if (template == null) { EditorContent_Elements.Q("Template-Shader_Mask").style.display = DisplayStyle.Flex; EditorContent_Elements.Q("Template-Shader_Template").style.display = DisplayStyle.None; } else { EditorContent_Elements.Q("Template-Shader_Mask").style.display = DisplayStyle.None; var Template_Shader_Template = EditorContent_Elements.Q <TextField>("Template-Shader_Template"); Template_Shader_Template.style.display = DisplayStyle.Flex; Template_Shader_Template.value = template.Template; } }
private void InitPreview() { Preview_text_Properties = EditorContent_Elements.Q <TextField>("Preview-text_Properties"); Preview_text_Properties.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Properties); }); Preview_text_Shader_Tags = EditorContent_Elements.Q <TextField>("Preview-text_Shader-Tags"); Preview_text_Shader_Tags.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Shader_Tags); }); Preview_text_Pass_Tags = EditorContent_Elements.Q <TextField>("Preview-text_Pass-Tags"); Preview_text_Pass_Tags.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Pass_Tags); }); Preview_text_Vert_Input = EditorContent_Elements.Q <TextField>("Preview-text_Vert-Input"); Preview_text_Vert_Input.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Vert_Input); }); Preview_text_Frag_Input = EditorContent_Elements.Q <TextField>("Preview-text_Frag-Input"); Preview_text_Frag_Input.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Frag_Input); }); Preview_text_Pass_properties = EditorContent_Elements.Q <TextField>("Preview-text_Pass-properties"); Preview_text_Pass_properties.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Pass_properties); }); Preview_text_Vert_process = EditorContent_Elements.Q <TextField>("Preview-text_Vert-process"); Preview_text_Vert_process.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Vert_process); }); Preview_text_Frag_process = EditorContent_Elements.Q <TextField>("Preview-text_Frag-process"); Preview_text_Frag_process.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Frag_process); }); Preview_text_Shader_Template = EditorContent_Elements.Q <TextField>("Preview-text_Shader-Template"); Preview_text_Shader_Template.RegisterValueChangedCallback((s) => { DisplayPreview(Preview_text_Shader_Template); }); }
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 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); }