首页 > 代码库 > 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之动态窗口