Unity GUI选择与评价
因为Unity内建的GUI不管是不是从开发效率或效率强制,因此,许多派生GUI插入,什么插件的选择,是一个非常值它被认为是。
既然是评价,就会有非常多的主观意识,这不一定成为选择的根据。
再比方。我已经习惯用NGUI插件了,那么不管你把NGUI说的再难用也无法得到我的认同。所以这篇文章很多其它的是给新手或者没接触过Unity的人作为參考的。
1、Unity自带的GUI,或者对其进行封装自己开发一套GUI框架
这两个选择都是很不明智的。Unity自带的GUI效率很低,每次渲染都是一个DrawCall。而且很难用,也无法做到所见即所得,所以没有太大的有用价值。
而依托于这个系统自己封装一下也不会改变什么,这绝对是浪费时间的举措。 Unity自带的GUI如今唯一的存在价值就是编辑器扩展或者顺手写一个測试代码加入一个Button。 只是话又说回来,假设编辑器扩展也能够所见即所得的编辑GUI。那岂不是更加方便?这绝对是正确的发展思路。
2、Unity4.6之后的新GUI系统
我今天尝试了一下新的GUI系统。感觉是中规中矩,不是非常差,可是也没有太大的亮点。 并且完毕度不是非常高,希望4.6正是版本号公布之后这个能够改善一些。
据说这个新的GUI系统是由NGUI的作者參与开发的。 感觉核心思路上与NGUI是相似的,由模型渲染打到合并DrawCall和所见即所得的编辑是正确的思路。细节实现上又具备Unity自身的风格。 总体感觉很干净。用起来也十分的方便。
只是缺点上面已经说了,控件不全。完毕度不高,非常多东西都要自己实现。比方富文本、输入框等等。
另外,它的事件系统我还没有看,不知道这里是否方便,是否支持无限的ScrollView。
3、NGUI
老牌的GUI插件。售价95美元。作为一个MMO的GUI插件来说已经绰绰有余了。 Unity的强大之处在这里体现的淋漓尽致,明明仅仅是个GUI插件,可是开发效率和实际效果不输于那些昂贵的或者是开源N年的老牌GUI框架。
NGUI的长处有三个:
1、完整。开发一个MMO所须要的控件或者功能它都有。
2、效率,它的DrawCall控制很好,多个控件渲染仅仅须要一个DrawCall
3、3D GUI的支持。通过这个你能够实现出倾斜的或者有透视效果的UI。
缺点说白了就一个,Bug太多,更新频繁导致功能混乱、难用:
作者患了更新综合症。三天更新一个版本号。这原本没有什么大问题,可是这些更新不不过Bug修正,还有非常多是接口或者操作方式的改动。NGUI并没有非常完好的文档。这导致你只能參考样例去琢磨该怎样实现。
网上的教程非常多都是针对早期版本号的。你假设看那些教程反而会被误导。插件的功能中非常多都是被废弃的,有的时候你真的不知道一个Button到底怎样创建才是正确的,是通过向导界面、还是拖一个Prefab、还是菜单中的某一个选项。
频繁更新当中一个原因是Bug太多。不知道是不是作者背负的历史包袱太重了,Hold不住了。非常多时候新增的功能是正确且合理的。可是总会伴随着非常多Bug。 比方新的锚点系统,这原本是比較强大的,可是适配多分辨率的时候执行时的分辨率会改动编辑时候的控件坐标,这就致命了。
4、Daikon Forge GUI
(最新补充:Daikon Forge GUI貌似从Unity的Asset Store下架了。不知道是作者为2.0版本号做准备还是停止开发了。尽管DF GUI展现了一种很美丽的工作流程,可是它在手持设备上的渲染效率问题貌似成了致命伤,我一開始选择DF GUI貌似是个错误的选择。如今想来。直接使用NGUI,然后对其进行再封装改进工作流似乎是更好的选择)
这个是13年9月份推出的新的GUI插件,可是很的完整和优秀,也是我正在使用的GUI插件。 主要跟NGUI进行对照。
1、尽管非常新,可是非常完整,各种空间一应俱全,甚至直接内嵌了基于Html的富文本显示。这个NGUI还要再买另外一个插件来支持。 各种图片显示(比如九宫格切分)都支持,输入框、ScrollView也都支持,Demo中的样例也非常多。比方3D场景中的GUI应用、CoverFlow效果等等。
2、DrawCall合并处理上比NGUI弱许多。你必需要给UIRoot指定一个Default Atlas,然后它才干给子控件合并DrawCall。否则就是有一个控件多一个DrawCall。正常来说。一个MMO的游戏UI元素许多。不可能用一个图集就把全部的元素都包括在内,所以这个功能很的鸡肋。也是急需优化的。
3、一些细节还须要优化。比方Label控件的中文换行。文本阴影对半透明的支持。
4、与NGUI相比,DF GUI最大的长处就是整洁、干净,使用起来非常方便,比方它非常人性化的加入了右键菜单创建控件、绑定事件的功能。
绑定事件就是仅仅须要加入一个public的函数。然后就能够通过下拉列表选择。 或者直接给控件上面绑定的脚本加入一个OnClick函数,然后就能够响应点击事件。这些都是非常小的细节。可是却让开发变得高效、方便,而一个框架。能够让使用者用的方便。本身就是最大的价值。
5、NGUI中两个比較粗陋的部分DF GUI都实现得很美丽。
一个是界面之间的层级遮挡,也就是Depth管理。NGUI早期能够通过z-order和Depth来管理,这使得界面一多管理层级关系无比困难,后面NGUI在3.0版本号最终改进了一下,可是与DF GUI相比仍显得不够智能。
NGUI中你须要自己分配Depth数值,而且编辑改动同层级的错误情况,而DF GUI中指定Depth后,会自己主动修正其它的Panel的Depth。就像DF GUI的作者说的那样,你不须要知道它是怎样保证正确的,可是它就是正确的。使用DF GUI非常多时候你不须要关心其内部实现。由于它自然而然的就是正确的。
二是锚点处理。 锚点在实现多分辨率适配的时候是很重要的。
NGUI的新锚点系统按理说是比較强大的,它能够指定控件基于哪个对象对齐。可是这个系统真正实现起来想要完好是很困难的,并且真正实现了有用价值也没有想象中大。反观DF GUI的锚点系统就很美丽,它能够指定控件或者Panel基于父窗体的对齐或者拉伸方式。通过这个就能够很方便的进行多分辨率适配。
5、EZ GUI或者2dTookit自带的GUI
这些能够代表非常多GUI插件。这些插件功能不是非常完好,可是麻雀虽小五脏俱全。比方2d tookit中的GUI。各种控件都有。拿来做一些小游戏绰绰有余。可是因为不具备一些复杂的功能比方锚点或者富文本控件等,所以拿来做MMO还是有些困难。
这些GUI插件。假设用来做小游戏,或者是自己很喜欢、熟悉,那么相同能够成为选择之中的一个。
总结一下,假设熟悉NGUI的,那么能够使用NGUI,否则Daikon Forge GUI是最好选择。 4.6提供的新GUI系统须要等待时间使其完好。
再次补充:近期看到Asset Store上面的评论说DF GUI渲染效率成问题。即便DrawCall控制住了实际绘制效率也不理想,在移动设备上面使用非常吃亏。作者在开发2.0。不知道会改变成什么样子。就我自己的測试来看,其渲染效率没有到不可用的地步,只是确实也没有什么值得称道的地方。所以使用DF GUI学生们要小心,在最后时刻,在上述的效率不坑。
版权声明:本文博主原创文章,博客,未经同意不得转载。