在使用Unity3D进行开发的时候,之前一直使用的是NGUI这款插件,NGUI是基于Unity的一款2D插件,被开发者广泛使用,但因为是第三方的包,需要下载导入Unity。而UGUI是Unity官方原生,使用右键-》UI 可以直接创建,相对于NGUI来说 可优化程度高,随着unity 发展,扩展潜力高,总的来说新项目还是建议使用Ugui。
NGUI和UGUI的区别主要有:
还有一些各自的优缺点:
NGUI uGUI 结论 图集处理 需要手动打包,可控性强 开发期间能够直接使用小图,打包期间自动打图集。图集生成是透明的工作流 正常情况ugui的工作流体验更好,开发效率也更高。当需要对图集做特殊压缩,比如etc1+alpha map时,ugui修改起来会麻烦一些 可定制程度 有源代码,随便修改 开源 - 显示层级控制 依靠Panel depth、RenderQueue来控制层级,对于游戏对象穿插在ui中处理比较麻烦 通过hierarchy、sorting order来控制层级 uGUI层级控制比较符合一般交互体验,更容易理解 字体制作 不支持dynamic font,需要自己实现或者找其他插件 支持dynamic font,可直接使用ttf ugui优势明显 ugui优势明显 程序包大小对比 android:20.1MB, ios:15.4MB android:19.4MB,ios:14.4MB 只有一个按钮的场景,使用unity5.3.0f4 pro默认设置打包 性能 全部使用c#脚本 核心逻辑使用c/c++实现 理论上ugui性能更好,优化空间更大
1) NGUI还保留着图集,需要进行图集的维护。而UGUI没有图集的概念,可以充分利用资源,避免重复资源。
2) UGUI出现了锚点的概念,更方便屏幕自适应。
3) NGUI支持图文混排,UGUI暂未发现支持此功能。
4) UGUI没有 UIWrap 来循环 scrollview 内容。
5) UGUI暂时没有Tween组件。一般使用DOTween