public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
    {
        base.OnGUI(materialEditor, properties);

        Material targetMat = (Material)materialEditor.target;

        if (tex != null)
        {
            targetMat.SetTexture("_MainTex", tex);
        }


        if (GUILayout.Button("Gradient Editor"))
        {
            Rect          rect  = new Rect(GUIUtility.GUIToScreenPoint(Event.current.mousePosition), new Vector2(100, 200));
            GradientPopup popup = GradientPopup.InitPopup(this, rect, keys, gradient);

            if (keys == null || gradient == null)
            {
                popup.DefaultRamp();
            }
            else
            {
                popup.InitializeColors(keys, gradient);
            }
        }
    }
    static public GradientPopup InitPopup(ColorRampShaderGUI materialGUI, Rect rect, ColorKey[] k, Gradient g)
    {
        GradientPopup popup = CreateInstance <GradientPopup>();

        //GradientPopup popup = (GradientPopup)EditorWindow.GetWindow(typeof(GradientPopup));
        materialInstance = materialGUI;

        popup.InitializeGUI();
        //popup.InitializeColors(k, g);

        popup.name = "ASDChildren";
        popup.titleContent.text = "ffff";
        popup.position          = rect;
        popup.ShowUtility();

        return(popup);
    }