Пример #1
0
 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;
     }
 }
Пример #2
0
 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); });
 }
Пример #3
0
        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;
        }
Пример #4
0
        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);
        }