一直在做Unity方面的游戏开发,经同事介绍了解到有这么一个GUI能提供跨平台的能力,有独立UI编辑器,而且功能强大,能够组合成复杂的UI界面,可以导出到Unity,Flash,Starling等,文档还说未来将支持UE4,Cocos2d-x,libgdx等。

做过Unity的同学都知道,Unity4.6以前的版本原生GUI运行效率是非常低的,在移动设备上基本被卡的嗷嗷的,4.6版本之后Unity开发了一套新的GUI,据说运行效率大大提升,非常好用,大有取代NGUI的意思,而且听说Unity的新版UI系统曾经hire过NGUI的作者,很多观点都和NGUI类似。在没有新版原生UI系统时大部分都用NGUI,可想而知NGUI的影响力。NGUI提供了多种控件和灵活的UI处理方式,但是NGUI也有明显缺点。

1.NGUI需要维护图集,做过项目的同学都知道,图集处理不好会造成资源的重复浪费,就是说要把UI图片预先打成包,以便界面使用,但是在实际项目中改动如果太过频繁,有些根本用不到的图片也不知道有没有用过,删了又担心造成资源丢失的情况,除非对这一块特别熟悉的人,一般人都不敢乱删图片资源。就算图集里面都是有用的资源,但是也会出现这样一种情况:同学1在Atlas A里面增加了一个图片P1运用到某个界面中,同学2不知道Atlas A里面新增了P1,于是他在Atlas B里面又增加了P1运用到另一个界面中,这时Atlas A和Atlas B里面就都包含有图P1,造成了浪费,不过这点浪费这时看可以忽略不计,但是假如图片P1需要更新,这时灾难来了,由于多个Atlas用到了P1,根本不知道要更新哪一个Atlas.而且只要增加图片或者更新图片都需要更新图集,维护起来比较麻烦。

2.NGUI的消息响应机制是利用sendmessage来实现,而sendmessage利用反射机制,本身NGUI组件的身上已经挂了很多默认组件,在运行时就需要先load这些映射关系,先缓存起来,调用的时候在通过安全检查,字符串匹配,参数匹配与转换,最后才去invoke方法。如果在项目开发中又新加一些自定义组件并定义了NGUI事件方法,对运行时的效率就会产生一些影响,反射这个不一定不好,要分具体情况,需要结合实际场景自行判断。

而对于FairyGUI,在图集方面相对好一点,它提供独立的UI编辑器,每个Atlas可以对应一个包也可以对应多个包,包里面的资源可以共用,不会因为包A里面的某资源更新了包B里面的资源没有更新,因为两个包之间可以共用资源,更新一个都可更新。同样,可以自行设置对应的Atlas. 
它的优点是UI独立出来了,可以自行组装,然后发布到需要的平台,然后对应的平台可以写独立的逻辑,实现了分层结构。而且UI编辑器功能强大,一般的效果基本都能满足。 
缺点是只能在UI编辑器里面制作动画,支持的动画工具比较少,导入到Unity里面运行时UI才能看到,不够直观并且无法修改,运行时的UI目录结构会跟在UI编辑器里面的目录结构不一致。 
优点可能也是缺点,缺点也可能是优点,对于拼UI的工作,由于提供了UI编辑器,完全可以由专门的美术来完成UI的拼接,但是沟通成本可能会比较大,因为涉及到功能编写,UI编辑器里面的节点命名和层次结构就需要程序和美术提前约定好。而由于在运行时才会有UI,程序猿在编写UI逻辑时不需要关心到底UI长什么样,只需要写逻辑即可,能够强制实现分层(UI层与逻辑层),方便日后做热更新。

转载于:https://www.cnblogs.com/AaronBlogs/p/6953559.html

FairyGUI和NGUI对比相关推荐

  1. 用uGUI开发自定义Toggle Slider控件

    一.前言 写完<Unity4.6新UI系统初探>后,我模仿手机上的UI分别用uGui和NGUI做了一个仅用作演示的ToggleSlider,我认为这个小小的控件已能体现自定义控件的开发过程 ...

  2. 如何测试基于Unity3D引擎的游戏

    版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 此文章来源于项目官方公众号:"AirtestProject" 由于游戏的界面是通过游戏引擎渲染出来的,游戏界面没 ...

  3. Unity手游实战:从0开始SLG——客户端技术选型

    项目背景 所谓选型,我认为就是为了实现某(些)个需求或者解决某(些)个问题所使用的解决方案.它可能是一个技术方案,也可能是一个管理方案,也可以是一个软件.工具或者是流程规范. 这篇的主题是技术选型,所 ...

  4. 【Unity】UIElements 渲染细节,比NGUI/UGUI/FairyGUI好在哪?

    为什么要关注 UIElements  ? 因为要有运行时版本了.  UIElements 在一开始推出的时候就在文档中提到将来会有运行时版本,但是具体什么时候没有说. Unity运行时UI解决方案 还 ...

  5. 【厚积薄发】FairyGUI使用经验分享

    这是第134篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群 ...

  6. FairyGUI Unity评估

    FairyGUI是一款UI制作的编辑器,它是一个跨平台的UI编辑器,支持多个开发平台,当然,对我们而言,它支持Unity,还有Egret,Egret和Unity有一点关系,它支持从Unity导入数据. ...

  7. NGUI从入门到实战1.2NGUI的主要特性

    NGUI从入门到实战1.2NGUI的主要特性 本节会依次简单介绍NGUI的主要特性.这是一节概述性的介绍,具体的效果实现与操作方法会在本书后面的章节中一一介绍.本文选自NGUI从入门到实战(大学霸) ...

  8. NGUI从入门到实战(大学霸内部资料)

    NGUI从入门到实战(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1EmZtc 关于本教程: 本教程是国内唯一一本NGUI系统教程.全面讲解如果在Unity中应用NG ...

  9. Unity+NGUI多分辨率适配方案

    说起unity的适配方案,网上可谓是一查一大堆,但是真正要应用到项目中的时候,总会出现各式各样的问题.由于最近自己要做一个小游戏,在开始做游戏之前,就想着先好好搞一搞适配这块,以后新起项目的时候也会用 ...

最新文章

  1. Windows全能终端神器MobaXterm
  2. 人性 - 社会 - 经济 - 科学
  3. [YTU]_2353 ( 长方柱类【C++ 类定义】)
  4. 运维从业人员是否需要考证?
  5. redis源码剖析(八)—— 当你启动Redis的时候,Redis做了什么
  6. 我的世界android制作教程,《我的世界手机版》怎么制作mod制作JS教程图文攻略
  7. 3cd修改tftp服务器地址,模式tftp服务器是什么
  8. redhat7 虚拟机 取消屏幕保护或自动休眠时间
  9. 简易租赁合同(免费)
  10. 双球坐标系_【天文】教你认识三大天球坐标系!(上)
  11. 2022年玻璃包装容器行业市场发展环境分析预测及下游需求规模增长率研究预测
  12. R语言并行计算beta-NTI值
  13. 浅谈SRAM与DRAM的异同
  14. 大学女生兼职适合做的工作有哪些?这些总有一样适合你
  15. UESTC 2018 Summer Training #4 Div.2
  16. ppc64le处理器国产power8服务器CentOS7.2安装open-jdk
  17. reduce函数详解以及自己实现一个reduce函数
  18. CocosCreator摄像机使用相关经验整理
  19. 电压调整率--电流调整率--纹波电压--电源效率--功率因素
  20. Win10 1709 64位专业版下载 202010

热门文章

  1. 带monkey的测流量!
  2. 《mysql性能调优与架构设计》笔记: 一mysql 架构组成
  3. Visual C++ 2012/2013的内存溢出检測工具
  4. PXE实现批量部署linux系统
  5. 腾讯音乐招 iOS 开发, base 深圳,要求:本科、三年、OC,懂音视频开发优先。...
  6. cmder里ls、pwd、自定义的alias等一系列命令都无法使用
  7. 【BIEE】数据透视表格第一列添加序号
  8. Android应用签名详解 Eclipse+ADT
  9. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
  10. 005,使用Java客户端连接RabbitMQ,构造我们的第一个Publish和Consumer应用