NGUI与UGUI

1. NGUI与UGUI的区别

   1) uGUI的Canvas 有世界坐标和屏幕坐标
   2) uGUI的Image可以使用material  
   3) UGUI通过Mask来裁剪,而NGUI通过Panel的Clip 
   4) NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层. 
   5) UGUI 不需要绑定Colliders,UI可以自动拦截事件
   6) UGUI的Anchor是相对父对象,没有提供高级选项,个人感觉uGUI的Anchor操作起来比NGUI更方便
   7) UGUI没有Atlas一说,使用Sprite Packer 
   8) UGUI的Navigation在Scene中能可视化
   9) UGUI的事件需要实现事件系统的接口,但写起来也算简单

2.各自的优缺点

   1) NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资源。
   2) UGUI出现了锚点的概念,更方便屏幕自适应。 
   3) NGUI支持图文混排,UGUI暂未发现支持此功能。 
   4) UGUI没有 UIWrap 来循环 scrollview 内容。 
   5) UGUI暂时没有Tween组件。  


======================

图集方面

NGUI:是必须先打出图集然后才能开始做界面。这一点很烦,因为始终都要去考虑你的UI图集。比如图集会不会超                1024,图集该如何来规划等等。在制作的时候需要将图片打入图集后才能进行制作。

UGUIsprite packer的模式。自带的图集打包模式,注意图片不能放在Resources文件夹下面,Resources文件夹下               的资源将不会被打入图集,切记。没打包的时候生成的图集保存在和Assets文件夹同级的目 

               录,Libary/AtlasCache里面,打包的时会重新自动生成就会生成并且会打到包中。在制作的时候不需要打图                  集,值需要标记包名称就行,换图什么的都很方便,Sprite Editor有切图工具,使用方便

      问题:UGUI这种打包时候打图集的方式,我们看不到文件,并且不能Resource.Load,以后的图集热更怎么办

列表和布局

         NGUI: UIRoot下,通过锚点进行自适应

                        有Grid,Table等布局组件,

                        显示区域是PanelClip来实现的,进行paneldrawcall合并

                        控件可以把任意UI元素作为参考点来进行锚点

                       有WrapList等复杂控件

         UGUI

                     有专门的布局组件LayoutGroup,使用还是比较方便的,

                    显示区域是采用的是Mask,采用Mask会导致drawcall的上升;

                    个人感觉泛化了Panel的概念,就是一个带有ImageRectTransform

                     通过spritepack进行drawcall合并

                     锚点只能相对于父节点,但是个人感觉比NGUI的锚点使用方便的多

                      没有提供很多的复杂控件,但是自己封装也不困难

 

渲染顺序

         NGUI

                    先根据Paneldepth进行排序,Panel再内部Depth排序

                     NGUI提供查看某个Panel drawcall占用情况的工具,方便进行drawcall调优

 

         UGUI

                      采用Hierarchy层级和Z轴坐标来决定渲染顺序,越下面渲染在顶层.

 

文本显示

         NGUI

                       支持动态字体,

                      斜体,粗体,下划线,删除线,超链接,角标,颜色,描边,阴影,渐变色

                      支持表情符号,但需要将表情打入图集,但是中文是用的动态图集,没法打图集。

 

         UGUI

                  只支持粗体,斜体,大小(可以一个控件内多个字体大小),颜色,其他的网上有(但是很少),

                    但是都不太好用,

 

控件

         基础控件没什么大差别

         NGUI

                   图集单个图片效果什么的只能对复制图集实现

         UGUI

                    图集单个图片可以使用material,

动画

         NGUI内部集成了Tween动画系统,也能用unity自带的动画系统,但是这些Tween动画协程比较多,不建议使用

UGUI也能使用第三方动画系统和自带动画系统,没什么区别,这方面没什么

 

程序

 

事件系统(输入与响应)

NGUI

        通过每个空间上的BoxCollider来进行输入响应,

 

UGUI

        UI自动拦截输入,事件触发;提供各种接口

===============
UGUI性能:http://www.jianshu.com/p/061e67308e5f
NGUI性能:http://blog.csdn.net/zzxiang1985/article/details/43339273
  

你可能感兴趣的:(NGUI与UGUI)