void DrawCubicColorBlock(
            ref bool showBlock, string label, string postfix,
            ref MaterialProperty color1,
            ref MaterialProperty color2
            )
        {
            showBlock = EditorGUILayout.Foldout(showBlock, label);
            if (!showBlock)
            {
                return;
            }

            EditorGUILayout.BeginVertical("box");
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.BeginVertical();
                    {
                        materialEditor.ColorProperty(color1, "");
                        materialEditor.ColorProperty(color2, "");
                    }
                    EditorGUILayout.EndVertical();

                    GUILayout.Space(10);
                    Rect rect = EditorGUILayout.GetControlRect(GUILayout.Height(50), GUILayout.Width(50));
                    GUI.DrawTexture(rect, _util.MakeGradientTexture(color1.colorValue, color2.colorValue));
                    GUILayout.Space(10);

                    EditorGUILayout.BeginVertical();
                    {
                        if (GUILayout.Button("Swap"))
                        {
                            Color tempColor = color1.colorValue;
                            color1.colorValue = color2.colorValue;
                            color2.colorValue = tempColor;
                        }
                        EditorGUILayout.Space();
                        if (GUILayout.Button("Same as upper"))
                        {
                            color2.colorValue = color1.colorValue;
                        }
                    }
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.EndHorizontal();

                _util.DrawVector3("Gradient Origin Pos", "gradOrigin_" + postfix);
                _util.DrawFloat("Gradient Height", "gradHeight_" + postfix);
                _util.DrawSlider("Gradient Rotation", "gradRotate_" + postfix, 0, 360, Mathf.Deg2Rad);
            }
            EditorGUILayout.EndVertical();
        }
        void DrawEdgeFadeOutProps()
        {
            _showEdgeFadeOutProps = _util.Foldout(_showEdgeFadeOutProps, "Edge Fade Out");
            if (!_showEdgeFadeOutProps)
            {
                return;
            }

            _util.DrawToggle("Edge Fade Out", "edgeFadeOutOn");
            _util.DrawVector3("Fade Out Origin", "edgeFadeOutOrigin");
            _util.DrawFloat("Distance", "edgeFadeOutDistance");
            _util.DrawSlider("Sharpness", "edgeSharpness", 0f, 1f);
        }