UI(一) - NGUI和UGUI比较

article/2025/9/29 20:16:35

UI是游戏项目中重要的组成部分,面对一个从零开始的项目,首先要确立的就是选用哪个UI系统作为主框架。

===

现在主流项目中基本上都是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也有源码开放,只是不能随意定制,只是在此基础上扩展和重载。


http://chatgpt.dhexx.cn/article/Hi9TuvOp.shtml

相关文章

NGUI系列教程一

首先导入NGUI package ,这里我们选用的是2.6.3 版本的NGUI 。在 unity 工程窗口中点击右键选择 Importpackage custom package ,选择你下载的NGUI 插件,导入完成后效果如图: 1.选择菜单NGUIOpen the UI Wizard,弹出创建…

最新版本的NGUI插件NGUI Next-Gen UI

NGUI的最新版本,在商店上直接卖95美元 由于Unity自身版本升级的原因,以及Unity5之后自带了UGUI,所以NGUI的使用率也大大下降了。 更何况,Unity2017版本之后很多老版本NGUI就用不了,很大一部分原因是Unity新版本弃用一…

UI框架的使用(NGUI)

1.导入资源包 2.把NGUI面板制作成预设体,然后把预设体拖到Resources/UIPanel中(一定要放在Resources/UIPanel中,后面路径读取的时候就是这个路径) 3.为各自面板建立对应的脚本,然后再把脚本挂给对应的面板 4.为各个…

【Unity】NGUI下载与导入

NGUI是UGUI出现之前的Unity3D最流行的UI插件,很多比较早的游戏教程都是用的NGUI。 本人因学习原因需要用到NGUI,但捣鼓了很久才成功(导入后菜单栏没有NGUI),下载了几个版本才发现是版本问题,现将下载与导入使用NGUI的方法总结如下,节省大家时间,少走弯路。 1、下载NGUI…

Unity学习日志_NGUI简介

Unity学习日志_NGUI简介 NGUI仅支持相机模式。 UIRoot UIRoot类似于UGUI中Canvas的UI Scaler组件,负责缩放模式调节。 属性: Scalling Style: Flexible:旧版本叫PixelPerfect,指永远保持图片自身像素大小不变。适合…

NGUI简介

NGUI NGUI是一款为Unity游戏引擎开发的工具功能扩展的UI插件,它能够为开发者提供了方便快捷的UI设计方法,加快设计游戏的速度。详细的介绍还是请读者到NGUI官网查看: http://www.tasharen.com/?page_id140 在Unity中,如果要使…

NGUI

(一)NGUI NGUI概述:NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件, 全面支持iOS/Android和Flash。相比UGUI(Unity自带的UI系统),有着更高的性能和…

【Unity】 NGUI学习笔记(二)NGUI基础功能

文章目录 NGUI基础功能与知识点Atlas图集资源Sprite精灵Button按钮Anchor(锚点)Label文本Toggle开关Slider滑动条Popup List下拉框Panel面板Input Field Script文本域脚本Text List组件Chat Input组件Scroll Bar滚动条(预制件)Scr…

NGUI插件的使用

一、NGUI的公有属性 Widget面板属性: Privot设置原点位置 Depth设置深度(跟UGUI一样,深度高的会挡住深度低的UI) Snap恢复初始大小 Size设置大小 Aspect宽度/高度,(Free模式下才可设置高度和宽度&#xff0…

网上订餐系统项目实战

写在前面:学习编程过程中写的一个网上订餐系统,记录一下大概的思路,源码跟实现过程 ,这也是一个学习的过程,这时候还有很多不足的地方 MVC的分层做得不是很好,如果还有其他可以改进的地方,欢迎…

肯德基宅急送网上订餐系统(移动扫码点餐)的设计与实现(小程序+PHP+MySQL)

目 录 第1章 绪论 1 1.1研究背景及意义 1 1.2研究现状 1 1.3章节安排 2 第2章 关键性技术介绍 3 2.1 PHP 3 2.2 JSON 4 2.3 XML 5 2.4 HTML 5 2.5 Mysql介绍 6 第3章 需求分析 7 3.1系统业务流程分析 7 3.2 功能需求分析 8 3.3用例分析 10 3.3.1领域类图 10 3.3.2系统用例 14 3…

基于移动端的网上订餐系统的设计和实现

随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机能够随时随地地查询互联网所提供的服务,一种高效的方法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网络以及互联网访问相关资源信息。因此,智能手机应用软件及其需要的服务将有广阔的发展前…

基于javaweb+mysql的网上订餐在线点餐管理系统(前台、后台)

基于javawebmysql的网上订餐在线点餐管理系统(前台、后台) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 …

Java+mysql毕业设计,网上订餐系统

1 绪 论 1.1 网上订餐配送系统的简介 本系统是基于B/S架构的系统。随着互联网技术与时俱进的不断更迭,人们对订餐的方式要求也逐渐提高,而本文所论述的网上订餐配送系统,正式随着互联网的兴起应运而生的。本系统能够帮助用户远程浏览餐饮信…

Java基础实战项目-------网上订餐系统

目录 前言 项目需求 项目环境准备 技能点 实现思路 ​编辑 项目总结 完整代码: 前言 已学完Java基础部分的内容,如下 理解程序的基本概念:程序、变量、数据类型 会使用顺序、选择、循环、跳转语句编写程序 会使用数组以及Arrays的…

毕设系统之网上订餐管理系统

距离毕业已经过去一个月了,毕设那一段难忘的时光相信大家也都还记得,我当时做的毕设系统是网上订餐管理系统,有三个角色,分别是管理员、用户(含会员)、商家,所用的技术为SpringBootMybatisThyme…

网上订餐系统需求分析报告

一.研究意义 随着计算机和网络的日趋发展,网上店铺如雨后春笋般出现,就连沃尔玛,金拱门这一类老品牌的商家都开拓了自己的网上购物渠道,有调查表明:无论是中国还是西方国家,越来越的用户已经习惯于网络购物…

《网上订餐系统》开发全程回忆

一、需求分析 随着信息经济的发展,许多上班族因工作繁忙导致就餐时间紧凑,而没法享受各种美味。传统的订餐方式过于乏味。而不能满足当今社会快速的生活节凑。然而,把餐饮与互联网结合起来正好解决了这一问题。网上订餐系统对广大顾客提供网上订餐服务,既方便了上…

网上订餐点餐用餐系统的设计与实现(SpringMVC, BootStrap, MySQL)

1、项目功能介绍 本设计的开发是基于B/S结构,采用JSP编程技术及Mysql数据库进行开发。本文首先介绍网站开发环境和运行平台、ASP、HTML、CSS3和java script,并对系统的设计进行了详细的需求分析;然后给出了网上订餐系统的设计方案及系统的具体…

基于java网上订餐网站系统

通过网上西餐厅网上订餐管理系统这个平台,消费者足不出户就可以了解大量的西餐厅菜单信息,给消费者带来了极大的方便。网上西餐厅管理系统平台的主要功能包括菜单类别管理、菜单信息管理等,根据客户种类又可以划分成管理员客户和会员客户两种…