关于NGUI与UGUI的区别

功能

图集方面

NGUI :是必须先打出图集然后才能开始做界面。这一点很烦,因为始终都要去考虑你的 UI 图集。比如图集会不会超 1024 ,图集该如何来规划等等。在制作的时候需要将图片打入图集后才能进行制作。
UGUI sprite packer 的模式。自带的图集打包模式, 注意图片不能放在 Resources 文件夹下面, Resources 文件夹下的资源将不会被打入图集,切记。没打包的时候生成的图集保存在和 Assets 文件夹同级的目录, Libary/AtlasCache 里面,打包的时会重新自动生成就会生成并且会打到包中。在制作的时候不需要打图集,值需要标记包名称就行,换图什么的都很方便, Sprite Editor 有切图工具,使用方便
问题: UGUI 这种打包时候打图集的方式,我们看不到文件,并且不能 Resource.Load ,以后的图集热更怎么办

列表和布局

         NGUI
                   UIRoot 下,通过锚点进行自适应
Grid,Table 等布局组件,
显示区域是 Panel Clip 来实现的,进行 panel drawcall 合并
控件可以把任意 UI 元素作为参考点来进行锚点
WrapList 等复杂控件
         UGUI
有专门的布局组件 LayoutGroup ,使用还是比较方便的,
显示区域是采用的是 Mask ,采用 Mask 会导致 drawcall 的上升;
个人感觉泛化了 Panel 的概念,就是一个带有 Image RectTransform
通过 spritepack 进行 drawcall 合并
锚点只能相对于父节点,但是个人感觉比 NGUI 的锚点使用方便的多
没有提供很多的复杂控件,但是自己封装也不困难
 

渲染顺序

         NGUI
先根据 Panel depth 进行排序, Panel 再内部 Depth 排序
NGUI 提供查看某个 Panel drawcall 占用情况的工具,方便进行 drawcall 调优
 
UGUI
采用 Hierarchy 层级和 Z 轴坐标来决定渲染顺序,越下面渲染在顶层 .
 

文本显示

         NGUI
                   支持动态字体,
斜体,粗体,下划线,删除线,超链接,角标,颜色,描边,阴影,渐变色
支持表情符号,但需要将表情打入图集,但是中文是用的动态图集,没法打图集。
 
         UGUI
                   只支持粗体,斜体,大小(可以一个控件内多个字体大小),颜色,其他的网上有(但是很少),但是都不太好用,
 

控件

         基础控件没什么大差别
         NGUI
                   图集单个图片效果什么的只能对复制图集实现
UGUI
图集单个图片可以使用 material,

动画

         NGUI 内部集成了 Tween 动画系统,也能用 unity 自带的动画系统,但是这些 Tween 动画协程比较多,不建议使用
UGUI 也能使用第三方动画系统和自带动画系统,没什么区别,这方面没什么
 

程序

 

事件系统(输入与响应)

NGUI
         通过每个空间上的 BoxCollider 来进行输入响应,
 
UGUI
         UI 自动拦截输入,事件触发;提供各种接口
补充:UGUI中的可以选择渲染模式的,在画布Canvas上可以选择使用相机渲染或者OverLay,还可以对层级进行非常方便的设置。两者都是组件式开发的典型。在图文混排这一方面,UGUI虽然有一定的劣势,但是现在有很多图文混排的插件,随着不断的更新,这些插件的易用性也不断提升,能和UGUI做出非常好的适应。但是NGUI也不是一无是处,NGUI作为一个开源的项目,非常适合一些开发复杂UI的工作,尤其是需要了解底层实现的时候,NGUI的优势就会体现出来。
总结:
     UGUI由于是Unity原生支持的,所以使用上会更加的人性化。并且伴随着版本升级功能会越来越强,逐渐将成为主流ui方案。NGUI是ugui出现之前的产物,通过MeshRenderer来实现类似CanvasRenderer的功能,概念上有点蹩脚。作为一个插件虽然已最大努力让ui开发工作变得简单,但相比能够让UnityEditor做出相应修改的ugui(如RectTransform的出现),其易用性是没法比的。综合来说,新的项目建议使用uGUI,学习成本不高,工具流更有助于提高开发效率。



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NGUI(Newton Game Dynamics Integration)和UGUIUnity UI)是Unity引擎中两种不同的UI系统。它们的主要区别在于设计目的、灵活性和更新时间线上。 1. **NGUI**:最初由Tasharen Entertainment开发,专注于游戏内交互界面,尤其是在2D游戏中表现优秀。它提供了一个简单直观的拖拽式UI编辑器,支持丰富的事件处理和组件系统。NGUIUnity 5之前是一个独立的包,但现在已经整合到Unity的标准库中,作为Legacy UI的一部分。 2. **UGUI**:是UnityUnity 5开始引入的新一代UI系统,是为2D和3D游戏设计的现代UI解决方案。它采用数据驱动的属性系统,提供了更高级的组件和布局选项,以及响应式设计,支持自适应布局。UGUI更加灵活,可以无缝集成到项目中,并且更容易进行性能优化。 **主要区别:** - **技术栈**:NGUI使用的是脚本组件系统,而UGUI是基于数据驱动的,支持更现代化的编程模型。 - **组件和事件**:UGUI提供了更多的组件类型和内置事件系统,使得设计更复杂交互界面更方便。 - **性能**:随着技术的发展,UGUI通常被认为在性能上优于NGUI,尤其是在大型场景和复杂交互时。 - **学习曲线**:对于新手来说,UGUI可能学习起来更快,因为它有直观的可视化编辑工具。 **相关问题**: 1. NGUI适合哪种类型的项目? 2. UGUI的响应式设计是如何工作的? 3. 如何在Unity项目中切换NGUI和UGUI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值