找回密码
 立即注册
查看: 455|回复: 1

Unity3D编程之NGUI和UGUI比较

[复制链接]
发表于 2022-1-2 15:20 | 显示全部楼层 |阅读模式
现在主流项目中基本上都是NGUI和UGUI,那么到底选哪个。我们先来做个比较。
图集处理功能比较
        NGUI需要使用工具手动拼接图片成图集。
        UGUI开发期间可以直接使用图片作为元素,打包时会自动拼接成图集。
        图集的alpha拆分功能,NGUI可以通过增加工具类和shader来做,UGUI有自带的alpha拆分功能方便许多。
组件支持功能比较
NGUI组件比较多,比较常用的有
        Localization System -- 多语言组件
        UIScrollView -- 滚动视图
        UIButton -- 按钮
        UIToggle -- 切换选择组件
        UIScrollBar -- 滚动条
        UIProcessBar -- 进度条
        UIPopupList --下拉列表菜单
        UIInput -- 输入框
        UIKeyBinding -- 快捷键绑定
        UIKeyNavigation -- 导航绑定
        UIGrid -- 排列
        UITable – 表格排列
        UIPlayAnimation -- UI动画
        UIAnchor -- 锚点
        UICamera -- UI摄像头
        UIDragXXX – 拖拽摄像头,元素,视图等
        UIFont – UI字体
        UILabel – 文字组件
        UIPanel – 绘制面板
        UIPlaySound – 声音播放
        UITexture – 贴图
        等等等等…还有很多
UGUI组件比较少
        Text – 文字
        Image – 贴图(图集中的元素)
        RawImage – 贴图(单张图)
        Button – 按钮
        Toggle – 切换与选择
        Slider – 大小滑动块
        Scrollbar – 滑动条
        Dropdown – 下拉框
        Input Field – 输入框
        Canvas – 画布
        Panel – 一大块元素
        Scroll View – 滑动视图
        Mask – 遮挡块
可定制程度
        NGUI有源码,可以随时随地修改满足特殊需求
        UGUI源码c#开源,可修改,但不是那么方便,需要重新打成dll后再替换原来的
输入事件处理
        NGUI通过摄像头发出射线碰撞,接受输入事件,并通过碰撞顺序来处理层级。
        UGUI根据输入点的位置RaycastTarget,判断事件应该交给哪个UI元素。
层级显示控制
        NGUI依靠Panel depth、RenderQueue来控制层级。
        UGUI可以依靠距离摄像机的前后位置来控制层级,也可以用sort order排序设置前后顺序。
字体制作
        NGUI不支持dynamic font。
        UGUI支持dynamic font,可直接使用字体文件
社区完善程度
        NGUI商业运营,氛围良好
        UGUI官方自运营,后台强大
性能
        NGU据很多测试网站统计,性能尚可
        UGUI同样,据很多测试网站统计,性能良好
好了,以上列出的是从几个方面对NGUI和UGUI的比较。
从图集工具来看,NGUI有更多的自主选择权,而UGUI更多的自动化的便利,
从组件支持度来看NGUI更适合快速原型,而UGUI更多的是需要自己编写适合自己的组件。
从UI底层可定制度上看,两者都是可定制的,但NGUI更加方便。
从输入事件处理上看,NGUI混合了物理系统,而UGUI有一套自己独立的事件系统。
从层级显示上看,NGUI概念有点混淆,而UGUI层级概念清晰干净。
从字体制作上看,NGUI麻烦了点,而UGUI更加方便。
从社区完善上看,NGUI更加商业化,而UGUI有官方支持后台强大。
从性能上比较看,NGUI臃肿了点但尚可,而UGUI更加良好。
综合来看,NGUI和UGUI都各自有各自的特点,没有绝对好,也没有绝对的差,都各自有各自的特点,和擅长的领域。针对不同的人群和项目可以有不同的选择。
如何选择适合你的GUI
适不适合,并不是绝对的,根据人和项目来分,上面分析过程中看,NGUI和UGUI都各自有自己的特点,对每个人每种情况来说都是不一样的。我的建议是选择你熟悉的,尝试你不熟悉的比较后再做决定。
Unity3D 4.x的项目通常会选择NGUI,因为Unity3D 4.x对UGUI支持的并不好。而如今新项目都会选择使用最新版本的Unity3D,所以选择UGUI的会多一点。我们需要与时俱进跟随潮流,所以如果你没有尝试过UGUI,熟悉UGUI应该是迟早的事。铁了心要做一个决定是用NGUI还是用UGUI,我的建议是,新项目启用UGUI,老项目继续使用NGUI。
但也不一定是一个套路用到底,比如有些人就是喜欢把控源码,希望在源码基础上进行更多的自定义的修改,然后完善成自己的系统框架,更好的服务于游戏逻辑,或者拥有更好的性能定制,那么最好的选择就是NGUI。不过UGUI也有源码开放,只是不能随意定制,只是在此基础上扩展和重载。
参考资料:Unity3D编程之NGUI和UGUI比较技术分析 - Unity3D技术 - 游戏开发网-游戏源码编程技术网站! - 游戏开发技术网站! (yxkfw.com)
发表于 2022-1-2 15:23 | 显示全部楼层
自己写的算啥[思考]
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 23:28 , Processed in 0.087902 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表