干活!一键游戏UI工程资源优化

大家好,我是来自【欢乐互娱】的欢乐小学生,现在让我来分享一些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编辑器的移动资源才行),然后执行脚本,其他包的资源也会重定向过来

有兴趣的可以关注【数字媒体与游戏开发】公众号获取源码,后续我也会补充很多开发,优化方案和实现细节, 我们可以深入交流

1赞

动态下载的资源处理不了呀

确实,动态资源才是大事,这样会误删

代码加载图片或者资源的文件,写法很多很奇怪,请问下这种情况怎么处理呢?

怎么判断重复资源 一份资源被拷贝到不同目录 通过名称查找也不准确吧?

写了,很明显你没看嘛

针对UI工程的,不考虑动态加载的资源

针对ui工程的呀,动态加载的不算

针对UI工程的,动态加载的资源不算UI工程里的

兄弟们,别白■呀,点赞评论关注公众号呀,很多干货的

仔细看,这工具很牛的。无论对性能和UI工程复杂度都有提升

是的,你说得对

哈哈 你确实挺欢乐的

抱歉。我重新思考了一下你的问题。你这个确实不好搞,动态加载fairygui里面的图片资源,在我和我所经历的项目里,动态资源都是不会放在fairygui工程里的,也是禁止动态加载fairygui里面的图片资源,这涉及到了一个规范问题

1赞

如果我不用fairygui呢:thinking:

:+1: :+1:

这只是一个思路,cocos和unity的UI工程是一样的,我在cocos里面一样实现了

来人,这么好的帖子可别沉了

把动态资源的问题处理了 就不会沉了。

动态资源咋处理,这没招啊,除非把代码中用到的检查一遍