GUI.Button Texture Swap?

Is there an way to use the on press functionality of a GUI.Button to change the texture assigned to it. Something to the effect of,

public Texture2D Texture1
public Texutre2D Texture2

void OnGUI() {

    if (GUI.Button (new Rect (50,410,60,60),  Texture1)) {
                //Swap to Texture2
            }

first make a main texture "textureButton" then assign that texture " Texture1" in the awake function. Use the 3rd texture "Texture2" when you want to swap it

var Texture1 : Texture; var Texutre2 : Texture; var TextureButton: Texture;

function Awake() { TextureButton = Texture1; }

void OnGUI() {

if (GUI.Button (new Rect (50,410,60,60),  TextureButton)) {
         TextureButton = Texture2;   //Swap to Texture2
        }

I think this is a more elegant solution. If you set a bool with the button you can use it to determine the texture in line, e.g.

if( GUI.Button( myRect, myBool ? texture1:texture2 ) )
{
     myBool = !myBool;
}

This should swap the texture each time the button is pressed.

I have the same problem on this post Change GUI.Button Texture on runtime - Questions & Answers - Unity Discussions but the texture is not changing! I also tried to apply the elegant solution but it hasn’t work! Any clue?