【Unity入门】NGUI和UGUI比较

目录

  • NGUI组件比较多,比较常用的有
  • UGUI组件比较少,比较常用的有
  • NGUI和UGUI比较

现在主流项目中基本上都是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比较

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://www.mzph.cn/news/536760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java网络爬虫拼接姓氏,名字并写出到txt文件(实现随机取名)

目录 1.爬取百家姓1.爬取代码2.爬取效果 2.爬取名字1.筛选男生名字2.筛选女生名字 3.数据处理(去除重复)4.拼接数据5.将数据写出到文件中 1.爬取百家姓 目标网站,仅作为实验目的。 ①爬取姓氏网站: https://hanyu.baidu.com/shic…

小狐狸ChatGPT系统 H5前端底部菜单导航文字修改方法

小狐狸ChatGPT系统后端都前端都是编译过的,需要改动点什么非常难处理,开源版修改后也需要编译后才能使用,大部分会员也不会使用,像简单的修改下底部菜单文字、图标什么的可以对照处理。这里以小狐狸ChatGPT系统1.9.2版本H5端为例&…

JWT signature does not match locally computed signature

1. 问题背景 最近在协助团队小盆友调试一个验签问题,结果还“节外生枝”了,原来不是签名过程的问题,是token的问题。 当你看到“JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not…

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | …

异或运算^简述

异或运算:^ 两个变量之间异或运算时,其二进制位相同取0,不同取1. 示例:a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001) 据此可以推算异或运算"^"有以下特性: a^a0 (0b 0000 0000)…

python使用apscheduler定时任务,固定周几运行程序

在add_job中添加参数day_of_week即可: day_of_week "0"表示:只有周一运行day_of_week "0-4"表示:周一到周五运行day_of_week "0,1,2"表示:周一二三运行 示例程序 from datetime import datet…

IDEA基本设置

本博客适用于纯新手小白,或者刚下载IDEA想要优化开发添加配置的读者。 基础设置 滚轮调整字体大小 打开 IntelliJ IDEA。 转到菜单栏中的 “File” -> “Settings”(Windows/Linux)或 “IntelliJ IDEA” -> “Preferences”&#xff…

2024年 Kubernetes 四大趋势预测

Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战。Kubernetes 最大的吸引力之一在于其可扩展性和跨环境的广泛用例。但是&…

CTF show 71

CTF show 71 在源码中可以看到程序把缓冲区内容全部替换成了问号 ​​ ob_get_contents函数把缓冲区内容读到以后赋值给了变量s,类型是字符串。 ob_end_clean()函数清空当前缓冲区并且关闭缓冲区 ​​ 所以展示的结果中全是问号。所以我们需要在读取到文件以后…

计算机网络基础知识分享

计算机网络基础知识分享 发送一个http请求,从客户端到服务器端,都经历了什么? **Ⅰ,浏览器生成消息 ** (1)浏览器输入网址 我们的探索之旅从在浏览器中输入网址开始,网址,准确来说应该叫 UR…

JVM内存结构Java内存模型Java对象模型

悟空老师思维导图:https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 1.JVM内存结构&&Java内存模型&&Java对象模型 1.1.JVM内存结构 1.2.Java对象模型 Java对象模型…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…

问题回复:什么是 Java 中的 Lambda 表达式?有什么应用场景?

Lambda 表达式是 Java 8 引入的一项重要特性,它允许在代码中以更简洁的方式表达匿名函数(也称为闭包)。Lambda 表达式的引入是为了提供一种更简单、更便捷的方式来写匿名内部类。 Lambda 表达式的语法如下: (parameters) -> …

C语言例题3

1.设x、y、z和k都是int型变量,则执行表达式:x(y4,z16,k32)后,x的值为(32); x(y4,z16,k32),x的值为32 理解逗号运算符在c语言中的工作方式:逗号运算…

Visual Basic的故事

Visual Basic(VB)是一种由Microsoft开发的面向对象的事件驱动编程语言。VB的故事始于上世纪90年代初,它在Windows平台上的成功对于图形用户界面(GUI)应用程序的开发产生了深远的影响。以下是关于VB发展过程和相关开发者…

VR全景展示的功能有哪些?适合用于哪些领域?

现如今,VR全景展示技术已经逐渐融入了我们的日常生活中,可能大部分人都还没有意识到VR全景是如何应用的,但其实VR全景针对多个行业的垂直领域都有一定的落地使用。在互联网高速发展的今天,多媒体所包含的种类也越来越多&#xff0…

【美团大数据面试】大数据面试题附答案

目录 1.hdfs读写流程解析 2.hdfs副本机制,三副本原因,副本存放策略 3.hdfs容错机制原理 4.MapReduce执行流程详解 5.spark和mr的区别 6.TopN求法,大数据量无法完全写入内存解决方案,MapReduce实现方法 7.spark部署、调度原…

SpringAOP复习

SpringAOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。他是一种可以在不修改原来核心代码的情况侠给程序动态统一进行增强的一种技术 SpringAOP:批量对Spring容器中的bean方法做增强,并且这种增强不会与原来方…

Odoo16 实用功能之在Form视图的各个部位加入按钮

目录 1、 如何在form视图中的头部加上按钮 2、如何在form视图中的身体加上按钮 3、如何在notebook标签中加入按钮 1、 如何在form视图中的头部加上按钮 以CRM中的渠道form视图为例子介绍&#xff08;实现红框中的效果&#xff09; 直接在<header>标签里加入按钮即可 …

树莓派4B搭建开源NAS系统openmediavault

目录 搭建过程使用镜像准备硬件准备软件账号信息制作系统盘首次启动配置获取树莓派IP地址 ssh登录到树莓派上登录到openmediavualt连接到wifi 搭建过程 搭建过程参考链接两篇文章,已经搭建完毕.期间遇到一些坑,为了方便大家,我把搭建好的镜像和使用到的工具放在百度网盘共享了…