Unity 3D游戏开发GUI高级控制之Window控件

Window控件在游戏开发中非常常见,所有视图都需要依赖窗口来显示,可以把窗口理解为视图的父类。前面所介绍的各种各样控件游戏视图,都属于窗口的子类。游戏界面可以由若干个窗口组成,窗口又由若干个视图组成。

 

创建窗口时需要设定它的显示区域,在窗口中可以添加任意游戏视图控件对象,前提是组件的显示区域必须在窗口中,否则无法显示。另外,窗口中所有的坐标均采取相对坐标,相对窗口左上角的坐标。下面查看实例中的代码,代码如下所示:

  #pragma strict
  
  //默认窗口位置变量
  private var window0:Rect = Rect(10,10,200,200);
  private var window1:Rect = Rect(220,10,200,200);
  
  function OnGUI () {
  	//在这里注册两个窗口
  	GUI.Window(0,window0,oneWindow,"窗口1");
  	GUI.Window(1,window1,twoWindow,"窗口2");
  }
  
  //显示窗口1的内容
  function oneWindow(windowID:int){
  	GUI.Box(Rect(10,50,150,50),"窗口ID"+windowID);
  	if(GUI.Button(Rect(10,120,150,50),"Button")){
  		Debug.Log("窗口ID = "+windowID+"按钮被点击了");
  	}
  }
  
  //显示窗口2的内容
  function twoWindow(windowID:int){
  	GUI.Box(Rect(10,50,150,50),"窗口ID"+windowID);
  	if(GUI.Button(Rect(10,120,150,50),"Button")){
  		Debug.Log("窗口ID = "+windowID+"按钮被点击了");
  	}
  }

 

上述代码中,使用了GUI.window()方法注册窗口,该方法共有4个参数,第一个参数表示窗口的ID,第二个参数表示窗口显示的区域,第三个参数表示一个回调方法名称,窗口中包含的所有视图组件将写入这个方法,第四个参数表示窗口的标题名称。

程序运行起来后的结果如下所示:
Unity 3D游戏开发GUI高级控制之Window控件
 

<!--EndFragment-->

 

<!--EndFragment-->

相关推荐