窗口

public class Lesson8 : MonoBehaviour
{
    private Rect r = new Rect(400,400,200,150);
    private void OnGUI()
    {
        //窗口
        //窗口唯一id,Rect,绘制窗口委托函数,窗口标题
        GUI.Window(1, new Rect(100, 100, 200, 150), DrawWindow, "Test1");
        GUI.Window(2, new Rect(100, 100, 200, 150), DrawWindow, "Test2");

        //模态窗口
        //模态窗口出现会使别的控件全部失效,即使没有重合也会优先响应模态窗口
        //常用于警告或报错窗口
        GUI.ModalWindow(3,new Rect(300,100,200,150),DrawWindow, "模态窗口");

        //拖动窗口
        r = GUI.Window(4, r, DrawWindow, "拖动窗口");
    }
    private void DrawWindow(int id)
    {
        //ID除了能区分窗口外,还能通过ID让一个函数执行不同逻辑
        switch(id)
        {
            case 1:
                //以窗口左上角为原点
                GUI.Button(new Rect(0, 30, 30, 20), "1");
                break;
                //拖动窗口需要在委托函数中写入该API以实现拖动功能
                //该函数可以传入Rect参数,该参数决定点击哪部分能拖动该窗口
                //默认不填是点击窗口任意位置都能拖动
            case 4:
                GUI.DragWindow();
                break;
        }
    }
}
posted @ 2025-03-18 09:50  cannedmint  阅读(10)  评论(0)    收藏  举报