Unity3D_插件工具_图片资源重复检查、引用计数统计

发表于2016-08-12
评论4 3.3k浏览

在项目实践中,经常需要更新或新增图片资源,但由于工程规模大资源数量多,若新资源是重复图片的不一定能一眼看出来。

把这个任务交给程序来实现比较合适。于是就做了个工具:

此工具两个基本功能:

1、检查某个图片是否与工程中其他图片重复;

2、检查某个目录下的全部图片是否与工程中其他图片重复;

3、检查工程中全部图片是否出现重复;

4、查看上面123结果列表的图片的被prefab引用情况(引用次数与具体引用prefab)。

 

把需要检查的目标目录或图片资源拖拽到上面篮框里,点开始检测。结果如下:

 

工具实现的大致流程如下:

1、读取全部PNG图片的路径;

2、计算每个图片的被引用情况(通过解析.prefab.meta);

3、计算每个图片的基本信息(base64、字节数、宽度、高度等等);

4、按重复次数排序,并设置分组ID(相同base64则视为同一组);

5、根据过滤目录或图片,显示过滤后的图片列表、重复情况、引用情况。

 

P.S.

1、两个图片若字节码计算出来的base64相同,则它们被认为是相同的图片:

System.Convert.ToBase64String(byte[] bytes);

2、计算引用关系时,并没有使用Unity提供的GetDependencies方法,是因为对于某些特定prefab这个方法会卡死。

所以计算引用关系是直接解析.prefab.meta来实现的。

 

最后附上源码,放在Editor目录下。修改代码中的对应工程资源目录即可移植到其他项目。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: