转自:http://www.cnblogs.com/Mygirl/archive/2011/07/07/2099740.html
/*button 和Rect上悬停显示tips */ var buttonText : GUIContent = new GUIContent("some dasdfgwbutton"); var buttonStyle : GUIStyle = GUIStyle.none; var leftPosition:float; var topPosition:float; var btn_w :float; var btn_h :float; public var isOver; public var create; function Awake(){ isOver = false; create = false; }
function Update()
{ Over(); } function OnGUI()
{ GUILayout.Button( "My button" ); if(Event.current.type == EventType.Repaint && GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition ))
{ //GUILayout.Label( "Mouse over!" ); create = true; if(isOver == true)
{ if(btn_w<100&&btn_h<200)
{ btn_w+=1; btn_h+=2; } GUI.Window(0,Rect(leftPosition,topPosition,btn_w,btn_h),ShowTips,""); } }else
{ create = false; } var rt : Rect = GUILayoutUtility.GetRect(buttonText, buttonStyle); if (rt.Contains(Event.current.mousePosition))
{ create = true; if(isOver == true)
{ if(btn_w<100&&btn_h<200)
{ btn_w+=1; btn_h+=2; } } GUI.Label(Rect(leftPosition,topPosition,btn_w,btn_h), "PosX: " + rt.x + "\nPosY: " + rt.y + "\nWidth: " + rt.width + "\nHeight: " + rt.height); } GUI.Button(rt, buttonText, buttonStyle); }
function ShowTips(windowID:int)
{ if(isOver == true)
{ GUI.Box(Rect(0,0,btn_w,btn_h),"Mouse over!"); } }
function Over()
{ if(create == true)
{ leftPosition = Input.mousePosition.x; topPosition = Screen.height - Input.mousePosition.y; isOver = true; }else
{ btn_w = 0; btn_h = 0; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述