今天我写了一个工具类,主要功能是计算所有资源文件的MD5,检查重复资源(MD5相同表示文件相同)
这个MD5是什么,读者可以自行百度,其实简略的讲就是验证文件是否被篡改。
什么意思,比如当你去网站下载游戏的客户端软件,当有些黑客喜欢搞出点不好的事情,在你的客户端加些恶意代码之类的。
当黑客改了客户端文件,随之这个文件的MD5也改变了。所以我们只要验证用户下载的客户端的MD5和网站提供的MD5码是否一致,来判断是否要下载。
那么写这个小工具的意义何在呢?在unity游戏开发中,我们可能会导入或创建相同的资源(比如一些贴图,材质,音效等等),重复资源会占用我们的包体大小。但是我们挨个去手动查重效率非常的低,不如把这个任务交给编辑器吧!
总之这个MD5是非常有用的,c#也自带MD5库。接下来先看代码吧,代码很简洁明了。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using System.Security.Cryptography;
public class FindAssets:MonoBehaviour
{
[MenuItem("CunstomFunction/FindAssets")]
static void GetMD5()
{
string[] assetsPath = Directory.GetFiles("Assets/","*.*",SearchOption