private void GlobalGradientSettingsModule()
 {
     ShowGlobalGradientSettings = EditorGUILayout.Foldout(ShowGlobalGradientSettings, "Global Gradient Settings [Pro only]");
     if (ShowGlobalGradientSettings)
     {
         EditorGUI.BeginDisabledGroup(true);
         EditorGUILayout.BeginVertical("box");
         {
             _GradientHeight_G.floatValue = CEditor.FloatField("Height", 80, _GradientHeight_G.floatValue);
             _GradPivot_G.vectorValue     = EditorGUILayout.Vector2Field("Pivot", _GradPivot_G.vectorValue);
             EditorGUILayout.LabelField("Rotation");
             _Rotation_G.floatValue = EditorGUILayout.Slider(_Rotation_G.floatValue, 0f, 360f);
         }
         EditorGUILayout.EndVertical();
         EditorGUI.EndDisabledGroup();
     }
 }
    private void CustomShadingModule(
        ref bool ShowShading, ref MaterialProperty Show, string ShadingSide,
        ref ShadingMode ShadingType, ref MaterialProperty ShadeMode, ref MaterialProperty Color1,
        ref MaterialProperty Color2, ref GradientSettings GradSettings, ref MaterialProperty GradientSettings,
        ref MaterialProperty GradHeight, ref MaterialProperty GradPivot,
        ref MaterialProperty Rotation, string shaderKeywordG, string shaderKeywordS, MaterialProperty Gizmopos)
    {
        EditorGUILayout.BeginVertical();
        {
            ShowShading = EditorGUILayout.Foldout(ShowShading, ShadingSide);
        }
        EditorGUILayout.EndVertical();
        if (ShowShading)
        {
            Show.floatValue      = 1;
            ShadingType          = (ShadingMode)EditorGUILayout.EnumPopup("Shading Mode", ShadingType);
            ShadeMode.floatValue = (float)ShadingType;
            if (ShadingType == ShadingMode.VertexColor)
            {
                targetMat.DisableKeyword(shaderKeywordS);
            }
            else if (ShadingType == ShadingMode.SolidColor)
            {
                ColorProperty(Color1, "Color");
                targetMat.EnableKeyword(shaderKeywordS);
            }
            else if (ShadingType == ShadingMode.Gradient_ProOnly)
            {
                EditorGUI.BeginDisabledGroup(true);
                EditorGUILayout.BeginHorizontal("Box");
                {
                    EditorGUILayout.BeginVertical(GUILayout.Width(50));
                    {
                        Color1.colorValue = EditorGUILayout.ColorField(Color1.colorValue);
                        Color2.colorValue = EditorGUILayout.ColorField(Color2.colorValue);
                        if (GUILayout.Button("Swap"))
                        {
                        }
                        Rect R = EditorGUILayout.GetControlRect(GUILayout.Height(50), GUILayout.Width(50));

                        if (ShadingSide == TOP || ShadingSide == DOWN)
                        {
                            GUI.DrawTexture(R, GetTexture(Color1.colorValue, Color2.colorValue, true));
                        }
                        else
                        {
                            GUI.DrawTexture(R, GetTexture(Color1.colorValue, Color2.colorValue, false));
                        }
                    }
                    EditorGUILayout.EndVertical();

                    EditorGUILayout.BeginVertical(GUILayout.Width(Screen.width - 112));
                    {
                        GradSettings = (GradientSettings)EditorGUILayout.EnumPopup("", GradSettings, GUILayout.Width(Screen.width - 110));
                        GradientSettings.floatValue = (float)GradSettings;
                        EditorGUI.BeginDisabledGroup(IsGlobal(GradSettings));
                        {
                            EditorGUILayout.BeginHorizontal();
                            {
                                EditorGUILayout.BeginVertical(GUILayout.Width(Screen.width - 142));
                                {
                                    if (IsGlobal(GradSettings))
                                    {
                                        GradHeight.floatValue = CEditor.FloatField("Falloff", 70, _GradientHeight_G.floatValue);
                                        EditorGUILayout.LabelField("Pivot", GUILayout.Width(60));
                                        GradPivot.vectorValue = EditorGUILayout.Vector2Field("", _GradPivot_G.vectorValue, GUILayout.Width(Screen.width - 142));
                                        EditorGUILayout.LabelField("Rotation", GUILayout.Width(60));
                                        Rotation.floatValue = EditorGUILayout.Slider(_Rotation_G.floatValue, 0f, 360f, GUILayout.Width(Screen.width - 142));
                                    }
                                    else
                                    {
                                        GradHeight.floatValue = CEditor.FloatField("Falloff", 70, GradHeight.floatValue);
                                        EditorGUILayout.LabelField("Pivot", GUILayout.Width(60));
                                        GradPivot.vectorValue = EditorGUILayout.Vector2Field("", GradPivot.vectorValue, GUILayout.Width(Screen.width - 142));
                                        EditorGUILayout.LabelField("Rotation", GUILayout.Width(60));
                                        Rotation.floatValue = EditorGUILayout.Slider(Rotation.floatValue, 0f, 360f, GUILayout.Width(Screen.width - 142));
                                    }
                                }
                                EditorGUILayout.EndVertical();

                                EditorGUILayout.BeginVertical();
                                {
                                    EditorGUI.BeginDisabledGroup(!isAnythingSelected());
                                    {
                                        if (GUILayout.Button(EditorGUIUtility.IconContent("EditCollider", "Edit in Scene"), GUILayout.Height(28)))
                                        {
                                        }
                                        if (GUILayout.Button(EditorGUIUtility.IconContent("TreeEditor.Duplicate"), GUILayout.Height(28)))
                                        {
                                        }
                                        if (GUILayout.Button(EditorGUIUtility.IconContent("Clipboard", "Paste"), GUILayout.Height(28)))
                                        {
                                        }
                                    }
                                    EditorGUI.EndDisabledGroup();
                                }
                                EditorGUILayout.EndVertical();
                            }
                            EditorGUILayout.EndHorizontal();
                        }
                        EditorGUI.EndDisabledGroup();
                    }
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.EndHorizontal();
                EditorGUI.EndDisabledGroup();
            }
            else
            {
                Color1.colorValue = Color.white;
                Color2.colorValue = Color.white;
            }
        }
        else
        {
            Show.floatValue = 0;
        }
    }