示例#1
0
    public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
    {
        this.materialEditor = materialEditor;
        material            = materialEditor.target as Material;

        // Init
        Prop.Initialize(properties);
        Layout.Initialize(materialEditor);
        ShaderSetup.Initialize(materialEditor);
        if (!ShaderSetup.isProjector)
        {
            bmode = ShaderSetup.GetBlendMode();
        }

        if (firstTimeApply)
        {
            ShaderSetup.MaterialChanged();
            firstTimeApply = false;
        }

        EditorGUI.BeginChangeCheck();
        DrawGUI();
        if (EditorGUI.EndChangeCheck())
        {
            ShaderSetup.MaterialChanged();
        }
    }
示例#2
0
    void DrawGUI()
    {
        var renderModeDrawer = ShaderSetup.isProjector ? Prop._ModeProj
            : (ShaderSetup.isDX11 && !ShaderSetup.isUnlit ? null : Prop._ModeStd);

        if (Prop._Mode.Draw(0, renderModeDrawer))
        {
            bmode = ShaderSetup.GetBlendMode();
            ShaderSetup.SetZWrite(); //only set zwrite when changing the render mode, because there is a zwrite option in the GUI
            if (bmode == WFABlendMode.CutoutTwoSided)
            {
                Prop._Cull._int = (int)CullMode.Back;
            }
        }

        if (bmode == WFABlendMode.Cutout || bmode == WFABlendMode.CutoutTwoSided)
        {
            Prop._Cutoff.Draw(indentation: 2);
        }

        EditorGUILayout.Space();

        if (Layout.BeginFold("Wireframe"))
        {
            DrawWireframeGUI();
        }
        Layout.EndFold();

        if (!ShaderSetup.isProjector)
        {
            if (Layout.BeginFold("Surface"))
            {
                DrawSurfaceGUI();
            }
            Layout.EndFold();
        }

        if (Layout.BeginFold("Glow"))
        {
            DrawGlowGUI();
        }
        Layout.EndFold();

        if (!ShaderSetup.isProjector && !ShaderSetup.isMobile)
        {
            if (Layout.BeginFold("Fade"))
            {
                DrawFadeGUI();
            }
            Layout.EndFold();
        }

        if (Layout.BeginFold("Preferences"))
        {
            DrawPrefGUI();
        }
        Layout.EndFold();
    }