unity3d创建window

unity3d创建windwo的方法如下:

GUILayout.Window (1, new Rect (50, 50, 200, 100), Func1, "窗口1");

第一个参数是新创建的窗口的编号,可以自定义,这里定义为了1;

第二个参数是窗口的GUI坐标位置,其中50,50表示左上角的坐标,200,100表示右下角的坐标,两点确定一个矩形;

第三个参数是创建该窗口后调用的方法,会自动将第一个参数传入该函数;

第四个参数是该窗口的名字。

其中func1函数如下:

void Func1(int id){
    if (id == 1) {
        //id与绘制窗口时的编号是一致的,用于区分是哪一个窗口调用
        GUILayout.Button ("这是一个按钮");
    }
}

这时候的界面如图1所示:

图1

 

下面修改一下需求:

运行程序后,首先界面上有一个按钮show,点击该按钮后显示上图1所示,再点击图1中的按钮后窗口1隐藏。且窗口一能够实现拖动效果。

具体代码如下:

private bool isShow;//显示是否为真
private Rect windowPos;//窗口坐标

// Use this for initialization
void Start () {
    isShow = false;//初始值为false,即窗口1不显示
    windowPos = new Rect (50, 50, 200, 100);//窗口1的默认位置
}

void OnGUI(){
        //思路是:当点击按钮show时,isShow为真,在第二个判断条件中显示窗口
        //其中,窗口位置也是一个变量,这样才可以避免每一帧擦除时重新绘制为变化后的位置
    if (GUILayout.Button ("Show")) {
        isShow = true;
    }
    if (isShow) {
        windowPos = GUILayout.Window (1, windowPos, Func1, "窗口1");
    }
}

void Func1(int id){
    if (id == 1) {
    //id与绘制窗口时的编号是一致的,用于区分是哪一个窗口调用
        if (GUILayout.Button ("这是一个按钮")) {
            isShow = false;
        }
        GUI.DragWindow ();//该函数放在最后,即可实现窗口的拖拽效果
    }
}    

 

转载于:https://www.cnblogs.com/chenyangsocool/p/6953380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值