unity3D游戏开发十三之GUI

GUI在游戏的开发中占有重要的地位,游戏的GUI是否友好,使用是否方便,很大程度上决定了玩家的游戏体验。Unity内置了一套完整地GUI系统,提供了从布局、控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面。在Unity中使用GUI来完成GUI的绘制工作,目前Unity没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码来实现,如果游戏有比较多的界面制作需求,可以通过编写编辑器脚本来制作适合自身需求的GUI编辑器,或者借助第三方的GUI插件,如NGUI。

Unity的GUI类提供了丰富的界面控件,可以将这些控件配合使用,GUI控件,如下图:


GUI代码需要在OnGUI函数中调用才能绘制,GUI的控件一般都需要传人Rect参数来指定屏幕绘制区域,例如Rect(0,10,200,300),对应的屏幕矩形区域左上角的坐标为(0,10),宽度为200,高度为300,在Unity GUI中,屏幕坐标系以左上角为原点

接下来我们看Label控件,Label控件适合用来显示文本信息或者图片,我们新建一个c#脚本,叫做TestGUI.cs,然后绑定到我们的Main Camera对象上,Label初始化代码如下:

[csharp]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. void OnGUI()  
  2.     {  
  3.         //GUI.color = Color.red;  
  4.   
  5.         GUI.Label(new Rect (10, 10, 100, 200), "Hello World!");  
  6.   
  7.         GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);  
  8.   
  9.     }  

我们定于了两个label,一个显示文字,另一个显示了一张图片,如下图:


Box控件,Box控件用来绘制带有边框背景的文字或图片,代码如下:

[csharp]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. void OnGUI()  
  2.     {  
  3.         //GUI.color = Color.red;  
  4.   
  5.         //GUI.Label(new Rect (10, 10, 100, 200), "Hello World!");  
  6.   
  7.         //GUI.Label (new Rect (100, 100, texture.width/4, texture.height/4), texture);  
  8.   
  9.         GUI.Box (new Rect (10, 10, Screen.width * 0.5f, Screen.height * 0.5f), "This is a title");  
  10.   
  11.         GUI.Box (new Rect (150, 170, texture.width/4, texture.height/4), texture);  
  12.   
  13.   
  14.     }  

效果如下:


Button控件,Button控件用来绘制响应单击事件的按钮,代码如下:

[csharp]  view plain   copy
  在CODE上查看代码片 派生到我的代码片
  1. GUI.Button (new Rect (10, 10, 150, 50), "这是一个文字按钮");  
  2. //图片按钮  
  3. GUI.Button (new Rect (150, 100, texture.width/4, texture.height/4), texture);  
效果如下图:


绘制一个文字图片的按钮,代码如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值