unity3d创建window
Posted chenyangsocool
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ();//该函数放在最后,即可实现窗口的拖拽效果 } }
以上是关于unity3d创建window的主要内容,如果未能解决你的问题,请参考以下文章