前言
其实一直觉得cocos creator 自带的编辑器写界面比较慢,特别是在ui界面比较多的情况下,一直在想如何提升这方面的效率,后来去了解了FGUi 觉得还不错,也是立刻在新项目上尝试了一次代替自带的编辑器去使用FGUi编写界面,项目临近结束,出一篇记录一下。
FGUI介绍
FGUI官网:www.fairygui.com/
- 跨引擎性:有(在Unity、Egret、Laya、Cocos中都可以使用)。
- 编辑器:独立编辑器。
- 定位系统:基于关联系统。
- 动效编辑:内置Tween动画编辑器(除特殊需求,基本上只需代码调用动画名)。
- 图集工具:自带(多了一些选项)。
- 支持各种字体:是(TTF、位图、TextMeshPro)。
- 滚动列表:基于滚动容器。
以上是FGUi的特点,当然了我并不是全部用到(粘贴复制)
评价
优点:
1、快:ui界面编辑的时候,最多的应该拖 、 拽 、 拉之类的操作,在 FGUi上我们可以 提供了一个和PS极其相似的工具界面给我们去编写,且也提供了cocos 有的Ui组件他也有,如果仅仅是编写ui界面,其实是完全可以做到零代码的。
2、图集:在fgui中,是以包为最大的单位,当我们需要在cocos cretor中去使用这个ui包时,我们需要到导出,这个时候FGUi会自动帮助我们把导出的图片合并成一整张图集。
3、位图:除了包之外,第二个最大的单位应该是组件,在组件中我们编写具体的ui界面,在这个时候对于多张无需动态代码控制的图片,fgui提供了手动合同的操作,这样可以尽量减少dc的次数。
缺点:
1、学习成本较高:
我们打开官网,可以看到FGUi的定位是 “对设计师友好的编辑器” ,事实上,这款工具确实做到了,但是我们迁移到cocos creator时,很多地方都需要操作ui界面动态改变操作内容,但是FGUI对cocos cretor的文档非常有限,且社区不活跃,好在配合文档和 cocos FGUI demo 上的示例能研究出怎么解决问题。
2、是否一定要使用FGUI代替cocos creator自带的Ui编辑器。
我觉得是不一定的,从几个方向考虑
1、项目大小:从我们开发的项目上来看,三个场景 + 10+小弹框 内容 ui内容 不算太多,只是尝试提升效率,并没有因为ui界面严重拖慢项目进度。
2、FGUI作者和本身的社区对cocos cretor 支持程度:目前的时间是 2023年5月16,FGUi作者对于cocos creator很多问题都是提议用户自己去改源代码了,不知道是不是受到了被layabox收款的影响,侧方面来看也不知道后面会不会继续维护,上面也有说到社区支持程度,活跃数是极低,只能说有人用但不多。
3、节点的问题,在cocos creator中我们可以很清晰看到对应的节点层级关系,但是在FGUi中,发布出来的ui在实际展示在屏幕中的节点很容易变得不可控,节点数的变多会影响性能,以合图举例,在FGUi中你可能刻意的想让ab两个节点图片呈现上下的兄弟关系,这样来在实际渲染中达到合图的效果,但是如果你不了解FGUi内部是怎么做的,往往事与愿违。
总结
FGUi是否需要在实际项目中使用呢?
从项目自身出发,如果有大量的Ui设计界面,使用FGUi肯定可以提升项目进度的,但是可能会因为不熟悉FGUi而且高度依赖FGUi去做事情可能会让项目变得不可控和不可维护,如果ui设计界面不算多的情况下,没必要使用FGUi了。