关于UGUI(0):写在前面

    使用Unity的UGUI有一段时间了,在这里写一个简单的介绍,同时也是一个总结,给还不是很清楚UGUI的朋友们看看。
    这里我用的Unity版本是5.3.4。

一. 介绍
    (1)GUI介绍

    在还没有UGUI的时候,我们是用Unity最早期UI系统GUI,内容如下图所示,包括Label标签控件,Button按钮控件,TextField输入框控件,ToolBar工具栏控件,Toggle单选控件,Slider滑动控件,ScrollView滚动区域控件,GroupView群组控件,Window窗口控件,Box盒控件等。

    它几乎都是用程序实现控件的创建,摆放位置和细节设置,配合使用GUIStyle和GUISkin修改界面样式,无法直接在场景面板修改UI。

(2)UGUI介绍
    UGUI是Unity 4.6版本后开始使用的新UI系统,保留了原来的GUI,并使用了可在场景面板直接操作修改的图形控件设计,可在层次面板右键新建UI控件。

    如下图所示,UGUI常用控件包括Text标签控件,Button按钮控件,Image图片控件,InputField输入框控件,Toggle单选控件,Slider滑动控件,Raw Image原始图片控件,除此之外,还有一个全新控件——Canvas画布控件,以及对应的EventSystem事件系统。



(3)NGUI介绍

   在Unity商店上,可以搜索到很多UI插件资源,例如Scaleform,NGUI等。


    NGUI插件出现的很早,是现在最多人使用的UI插件,很多使用Unity3D制作的游戏里都有它的身影,如下图所示,这是使用NGUI制作的游戏《世界僵尸大联盟》。


    这里的NGUI版本是3.8.2,常用控件如下图所示,有Popup List弹出列表控件,ProgressBar进度条控件,Scroll Bar滚动条控件,Text标签控件,Button按钮控件,InputField输入框控件,Check Box单选控件,Slider滑动控件。


    在NGUI中,图片资源要打包成Atlas图集,才可以使用。


二. 对比优缺
(1)对比
    对比如表所示:

对比内容

GUI

UGUI

NGUI

根节点

Canvas画布控件

UI Root

控件划分

划分为整体所用控件和个别所用控件两个部分,例如:整体所用控件GUI.Window,个别所用控件GUI.Label

在GUI基础上,取消整体所用控件,在个别所用控件中剔除了不常用的控件

无整体所用控件;

将常用控件划分得更为仔细,例如将滚动条划分为水平方向滚动条和竖直方向滚动条

修改

使用程序修改位置和具体渲染样式,无法及时看到改变;

修改不便

可在Scene面板中手动修改位置大小,在Inspector面板中修改具体渲染样式;

修改方便

可在Scene面板中手动修改位置大小,在Inspector面板中修改具体渲染样式;

修改方便

自适应

无;

需要使用程序设置

有;

可直接在Canvas控件上的Canvas Scaler组件上修改

有;

可添加Stretch组件,并修改具体数值

图集

有;

可直接使用小图,发布时自动打包成图集;

可设置图集大小

有;

使用图片必须打包成图集;

可设置图集大小

Text文本

有;

要使用程序创建;

图文混排需要自己编写

有;

可直接创建;

支持ttf字体;

图文混排需要自己编写程序实现

有;

可直接创建;

支持ttf字体;

支持图文混排

深度排序

程序中编写;

顺序越靠后越显示在前面

在Inspector面板中,可直接拖动控件位置修改深度,顺序越靠后越显示在前面;

GUI创建的控件始终显示在最前面

在Inspector面板中的depth和z轴中设置;

比较复杂

Tween效果

无;

需要自己编写程序实现

无;

需要插件或自己编写

 

Image图片

Texture

Texture2D;

配合GUIStyle和GUISkin使用;

需要在程序中设置原尺寸

Sprite;

可直接使用;

可直接恢复原尺寸

Sprite;

可直接使用;

需要在图集中设置大小

Button响应

程序编写

根据Button控件上的图片来响应,如果没有图片,则无法响应

有独立的,可手动编辑的Collider碰撞器来响应

源代码

 

不公开

部分公开

公开


(2)优缺
    这里我总结了一下以上三者的优缺点。
  • GUI优缺

    优点:可显示在UGUI前面。

    缺点:只能在程序中创建UI控件,修改位置大小和具体渲染样式,不能及时看到变化,如果有重大修改,很可能要重写脚本,费时。

  • UGUI优缺

    优点:Unity3D最新的UI系统,能够快速创建UI控件,并且可以在场景视图中修改控件的位置、大小、渲染样式,不需要导入额外插件。能及时看到变化,减少程序工作量,节省资源。

    缺点:诞生时间不久,自身问题只能靠Unity3D更新来修复。和NGUI对比,缺少很多常用功能,例如缺少Tween常用脚本,只能用动画补充或者用程序实现需要的动作。不能很清楚的管理图片。

  • NGUI优缺

    优点:推出时间久,有很多游戏UI都是使用它来实现。使用图集收纳所有图片,有效管理图片大小。UI控件分类仔细,有常用Tween脚本和Shader着色器,可以直接使用,不需再写额外程序,减少程序工作量。可以看到源代码。

    缺点:NGUI是基于Unity所写的UI插件,分类细致,脚本多,需要一段时间来学习了解如何使用,不能很快上手。


三. 安排
    看到这也看累了吧,终于要开始正文了!
    正文分两部分,首先讲讲UGUI的常用控件,比如说Button按钮这些,接着是讲讲一些常用组件,比如说Grid Layout Group自动布局这些。
    OK,下篇正文开始!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值