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 }
效果:
时间: 2024-10-14 20:20:51