Get Mouse Position GUI

Hi, all! I would like to do this:
I have a GUITexture titled ‘arrow’, and I want it to set its transform.position.y to the transform.position.y of whatever GUILabel the mouse is currently hovering over. Is this possible? How so?

EDIT
I have changed the code… The only problem I have now is that when the event fires, the arrow disappears from view, like the y value is off… What’s up with that?

The latest bit of code (Edit #3)

@script ExecuteInEditMode;
var skin : GUISkin;
var Choice3 : Rect;
var Choice2 : Rect;
var Choice1 : Rect;
var Answer : Rect;
var Arrow : GUITexture;
var mousePos_2D : Vector2;
function OnGUI(){
	if(skin){
		GUI.skin = skin;
		}else{
		Debug.Log("You Forgot To Add A Skin!");
		}
		
	GUI.Label(Answer,"How are you today?");
	GUI.Label(Choice1,"Well, Thank You");
	GUI.Label(Choice2,"Do I know you?");
	GUI.Label(Choice3,"I am sad.");
	if(Choice1.Contains(mousePos_2D)){
		Arrow.transform.position.y = Choice1.y;
		Debug.Log("Switched");
		}
	

}
function Update(){
 mousePos_2D = Vector2(Input.mousePosition.x, (Screen.height - Input.mousePosition.y));
 }

I am not sure I get this right so I will say considering your “I most definitely want to highlight”. So this is going to highlight or change the color of the text when you hover the mouse on top of it like you would get on the menu of a game.
I would use a 3DText for your words then add a box collider to each of them and then finally:

function OnMouseEnter(){
   renderer.material.color = Color.blue;
}
functionOnMouseExit(){
   renderer.material.color = Color.white;
}

This consider that the original color is white and it turns blue when you place the cursor on top of it and gets back to white when you leave.
Once again, I am not sure of what you want, just trying to help though.

Alright. I got the script running quite well! I just had to change the transform into pixelInset.

Thanks for the help guys! -YA

The completed script

@script ExecuteInEditMode;
var skin : GUISkin;
var Choice3 : Rect;
var Choice2 : Rect;
var Choice1 : Rect;
var Answer : Rect;
var Arrow : GUITexture;
var makeup : float;
var mousePos_2D : Vector2;
function OnGUI(){
	if(skin){
		GUI.skin = skin;
		}else{
		Debug.Log("You Forgot To Add A Skin!");
		}
		
	GUI.Label(Answer,"How are you today?");
	GUI.Label(Choice1,"Well, Thank You");
	GUI.Label(Choice2,"Do I know you?");
	GUI.Label(Choice3,"I am sad.");
	if(Choice1.Contains(mousePos_2D)){
		Arrow.pixelInset = Rect(108,Screen.height - Choice1.y - makeup,16,16);
		Debug.Log("Switched");
		}
	if(Choice2.Contains(mousePos_2D)){
		Arrow.pixelInset = Rect(108,Screen.height - Choice2.y - makeup,16,16);
		Debug.Log("Switched");
		}
	if(Choice3.Contains(mousePos_2D)){
		Arrow.pixelInset = Rect(108,Screen.height - Choice3.y - makeup,16,16);
		Debug.Log("Switched");
		}
	

}
function Update(){
 mousePos_2D = Vector2(Input.mousePosition.x, (Screen.height - Input.mousePosition.y));
 }

I ended up having to make the ‘makeup’ variable to keep the arrow aligned with the text

Ok I know what you mean now. You are almost there.

if(Choice1.Contains(Input.mousePosition))

This line means that if your mouse cursor is somewhere in the area of Rect called Choice1 it will do something. Since you want it to work for your labels, I suggest to define them all, so you don’t have to write the same stuff again and again. So add (160,300,350,70) coords to your Choice1 variable - same for all the others (Choice2, Choice3 etc)

Then it should look like this

GUI.Label(Choice1,"How are you today?");
    GUI.Label(Choice2,"Well, Thank You");
    GUI.Label(Choice3,"Do I know you?");
    GUI.Label(Choice4,"I am sad.");
    if(Choice1.Contains(Input.mousePosition)){
       Arrow.transform.position.y = Choice1.Y;
       Debug.Log("Switched");
       }

Tell me if this works because I’m not a java guy