- Home /
i was wondering about gui hover...
and is there solution to detect are we hovering the gui button for example. but not checking if mouse is inside buttons rect. more then detecting that guistyle changed its state into hover or something like that.
Do you want to check if the mouse is on/on top of the GUI?
Answer by PrimeDerektive · Feb 01, 2011 at 10:02 PM
When you pass a GUI element a GUIContent with a tooltip, you can easily detect if that button is being hovered by checking if the global GUI.tooltip has content set, and checking what that content is. For instance:
function OnGUI(){
GUI.Button (Rect (10,10,100,20), GUIContent ("MyButton", "MyButtonTooltip"));
if(GUI.tooltip == "MyButtonTooltip"){
//The button "MyButton" is currently being hovered
}
}
Answer by Bunny83 · Feb 01, 2011 at 09:11 PM
Not directly, take a look at this Unity Forum article.
The tooltip idea seems to work, but i haven't tested it yet. But why don't you want to check the Rect? Even with GUILayout it is posible look at GUILayoutUtility.GetLastRect. The docs even gives you exact the "hover" example
Answer by Benoit Dufresne · Mar 26, 2013 at 08:58 PM
I've been headbutting on this problem for a while today. It seems the tooltip is the best approach, but with a twist:
function OnGUI(){
GUI.Box(Rect(0,0,220,500),GUIContent("", "noScroll"));
//inhibit events
if(Event.current.type == EventType.repaint) {
if (GUI.tooltip == "noScroll"){
camCtrl.Lock(true);
}else{
camCtrl.Lock(false);
}
}
}
"if(Event.current.type == EventType.repaint)" is needed otherwise "if (GUI.tooltip == "noScroll")" will evaluate to true AND false on every frame.
Your answer
Follow this Question
Related Questions
Can I use GUIStyle and make the button's textures MovieTextures instead of regular 2D Textures? 0 Answers
Is there a generalized version of GUIUtility.hotControl? 0 Answers
Tooltip when mousing over a game object? 0 Answers
GUI texture updating in preview but not in game 1 Answer
GUI.Button on MouseHover 1 Answer