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,第二个参数表示窗口显示的区域,第三个参数表示一个回调方法名称,窗口中包含的所有视图组件将写入这个方法,第四个参数表示窗口的标题名称。

程序运行起来后的结果如下所示:

 

<!--EndFragment-->

 

<!--EndFragment-->
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值