标签:== his out 点击 ima 运行程序 htm 自定义 需求
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 ();//该函数放在最后,即可实现窗口的拖拽效果 } }
标签:== his out 点击 ima 运行程序 htm 自定义 需求
原文地址:http://www.cnblogs.com/chenyangsocool/p/6953380.html