首页 > 代码库 > C#编写Unity基础GUI之动态窗口
C#编写Unity基础GUI之动态窗口
1.创建窗口
1 //声明窗口位置大小 2 private Rect pos = new Rect(10,60,120,50); 3 4 //回调函数 5 void Wincallback(int id) 6 { 7 if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){ 8 print("按钮在窗口内被单击"); 9 }10 }11 12 void OnGUI()13 {14 pos = GUI.Window(0, pos, Wincallback, "我的窗口");15 }
效果;
定义可用鼠标移动的窗口:
在回调函数中加入
1 void Wincallback(int id)2 {3 if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){4 print("按钮在窗口内被单击");5 }6 7 GUI.DragWindow();8 }
注意此时需要把此函数放到回调函数结尾;
若使用
GUI.DragWindow(new Rect(0,0,100,50));
则会限制可拖动的区域(我测试了,但是效果不怎么好);
使用开关控制显示窗口与否:
1 private Rect pos = new Rect(10,60,120,50); 2 3 //回调函数 4 void Wincallback(int id) 5 { 6 if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){ 7 print("按钮在窗口内被单击"); 8 } 9 10 GUI.DragWindow(new Rect(0,0,100,50));11 }12 13 private bool showWin = true;14 15 void OnGUI()16 {17 showWin=GUI.Toggle(new Rect(0,0,100,20),showWin,"显示窗口");18 19 if (showWin)20 {21 pos = GUI.Window(0, pos, Wincallback, "我的窗口");22 }23 }
效果:
C#编写Unity基础GUI之动态窗口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。