第4章 用户界面
4.1 用户界面系统的比较
用户界面(UI)是游戏项目中的重要组成部分。面对一个从零开始的项目,首先要确定选用哪个UI系统作为主框架。时代变迁太快,编写本章时,主流Unity项目中基本上是在NGUI系统和UGUI系统中二选一。后来又出现了一个FairyGUI系统,它脱离Unity资源导入方式自成一派,本意是想统一多个引擎之间的UI框架,虽然是好事,但里面涉及很多性能问题,其优势是便于那些熟悉其他商业引擎的读者转换到Unity上来。FairyGUI系统有自己的一套编辑器,可以通过编辑器来创建界面和编辑UI动画,将UI设计与程序脱离开来。Unity官方也做了类似的系统,并将这套系统命名为UI Elements,在Unity 2020上改名为UI Toolkit。考虑到知识点铺得太开,会无法专注某项技能,UGUI系统又是公认的性能最好的UI系统,因此这里专门介绍UGUI系统。
那么如何选择适合自己项目的UI系统呢?其实适不适合并不是绝对的,应根据人和项目来区分,NGUI系统、UGUI系统、FairyGUI系统也有各自的特点。我的建议是选择你所熟悉的,尝试你不熟悉的,进行比较后再做决定。
在Unity3D 4.x以前,大部分项目通常会选择NGUI系统,因为当时的Unity3D 4.x对UGUI的支持并不好。如今大多数项目都会使用最新版本的Unity3D,所以选择UGUI系统的会多一些。近两年,UI系统更新太快,我们需要与时俱进,如果先学习了NGUI系统或FairyGUI系统,而没有尝试过UGUI系统,那么熟悉UGUI系统也应该是迟早的事。
当然,也有例外,有些人就喜欢把控源码,喜欢在源码基础上进行更多的自定义修改,然后完善成自己的系统框架,使其更好地服务于游戏逻辑,或者拥有更好的性能定制,这样就会选择NGUI系统。UGUI系统也有部分源码开放,只是不能随意定制,但可以在原UI系统的组件上扩展和重载。