GUI button issues

Right, ive been searching through unity answers and there are lots of similar questions but none that seem to exactly cover the issue i am having.
I have a gui button that has a texture on it.

public GUISkin mControlGUISkin;
public Texture2D mBack;
public Texture2D mBackSelected;


// Update is called once per frame
void Update () 
{

}

void OnGUI()
{
	GUI.skin = mControlGUISkin;
	GUI.depth = -1;
	if(GUI.Button(new Rect(Screen.width * 0.75f,Screen.height * 0.85f,Screen.width * (20.0f/mBack.width), Screen.height * (2.0f/mBack.height)),mBack))
	{
		Application.LoadLevel("MainMenu");	
	}
}

This is all fine, when the button gets pressed we enter a new scene! However what i want, is the texture to change when i hover over it with the mouse, a sort of on mouse over event. I literally for the life of me cannot figure this out. I thought of creating a function onMouseOver(); however i didnt really see how this would affect the actual button in game. I tried a GUIstyle to no avail! I also have made the GUI button background transparent so that only the texture shows.
Any help would be awesome cheers!

How did you create your gui skin? In the editor if you create a gui skin, there should be an onhover style for buttons that you can change

use GUI.DrawTexture instead

set rect through separate variable

if (rect.Contains(Input.mousePosition)) { //change texture to mouse over

if(Input.GetMouseButtonUp(0)) { //next level