《Unity3D高级编程 主程手记》第四章 用户界面(一) 用户界面系统的比较

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 官方自运营,后台强大

性能

	NGUI 据很多测试网站统计,性能尚可
	UGUI 同样,据很多测试网站统计,性能良好

总结

  • 从图集工具来看,NGUI 有更多的自主选择权,而 UGUI 更多的自动化的便利,

  • 从组件支持度来看 NGUI 更适合快速原型,而 UGUI 更多的是需要自己编写适合自己的组件。

  • 从UI底层可定制度上看,两者都是可定制的,但 NGUI 更加方便。

  • 从输入事件处理上看,NGUI 混合了物理系统,而 UGUI 有一套自己独立的事件系统。

  • 从层级显示上看,NGUI 概念有点混淆,而 UGUI 层级概念清晰干净。

  • 从字体制作上看,NGUI 麻烦了点,而 UGUI 更加方便。

  • 从社区完善上看,NGUI 更加商业化,而 UGUI 有官方支持后台强大。

  • 从性能上比较看,NGUI 臃肿了点但尚可,而 UGUI 更加良好。

补充 FairyGUI

        它脱离 Unity 资源导入方式自成一派,本意是想统一多个引擎之间的 UI 框架,但里面涉及很多性能问题。

        优势:便于那些熟悉其他商业引擎的读者转换到 Unity 上来。

        FaitryGUI 系统有自己的一套编辑器,可以通过编辑器来创建界面和编辑 UI 动画,将 UI 设计与程序脱离开来。Unity 官方也做了个类似的系统,名为 UI Toolkit。

如何选择适合你的GUI

        选择你熟悉的,尝试你不熟悉的,进行比较后再做决定。

        Unity3D 4.x 的项目通常会选择 NGUI,因为 Unity3D 4.x 对 UGUI 支持的并不好。

        如今新项目都会选择使用最新版本的 Unity3D,所以选择 UGUI 的会多一点。

        希望在源码基础上进行更多的自定义的修改,然后完善成自己的系统框架,更好的服务于游戏逻辑,或者拥有更好的性能定制,那么就会选择 NGUI 系统。UGUI 系统也有部分源码开放,只是不能随意定制,但可以在此基础上扩展和重载

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值