大家好,我是来自【欢乐互娱】的欢乐小学生,现在让我来分享一些UI工程的优化工具,非常好用,理论上对越大的项目,迭代次数越多的项目,优化效果越明显
1:一键清理无用资源和组件
1.1:目标
随着ui越来越多,项目越来越复杂,换ui的次数越来越多,项目中一定会存在大量无用废弃的ui资源,当充斥的大量无用资源时,会极大影响工程的可维护性,Fairygui免费版自带的查找是否被使用的功能只能一个一个查找,太鸡肋了,而且没办法递归查找,有可能这个资源组件被引用了,但他的父节点没被引用,他一样是无效资源,但是在Fairygui里面很难判断
1.2:实现原理
在package.xml里面找到所有资源,并找到所有导出的组件,递归查找导出组件使用的组件及其图片,将他们打上使用标记,没有被打上标记的资源将被清理,并更新每个包的package.xml文件.(类似lua gc的标记清除法)
2:一键重定向重复ui,清理多余资源
2.1:目标
在ui开发过程中,容易存在大部分重复资源,造成资源浪费,一般情况下,我们需要将重复资源放在公共包,这样减少资源的多余的概率,但是如果每次我们的ui都要去在公共包找有没有相同的ui的话,会极大的降低我们的开发效率,而且很多资源我们一开始也不知道它是不是足够通用,这个工具可以帮助我们解决这个问题
2.2:实现原理
取出所有图片的md5码计算相同资源。
1:如果存在与公共包相同的资源,则会重定向所有被使用的资源指向公共包。
2:如果不存在则将资源通过日志文件打印出来,用户酌情处理
2.2.1:对于与公共包有重复的资源:
你无需关注,脚本会自动帮你处理并将资源重定向到公共包
2.2.2:对于与公共包不存在重复,但是与其他包存在重复的资源
1:资源重复率<=2一般不处理,对于>=2的酌情处理
2:将其中的一个资源移动到公共包的目录下(注意一定是Fairygui编辑器的移动资源才行),然后执行脚本,其他包的资源也会重定向过来
有兴趣的可以关注【数字媒体与游戏开发】公众号获取源码,后续我也会补充很多开发,优化方案和实现细节, 我们可以深入交流