短视频源码php,自动查找重复贴图-阿里云开发者社区

开发者社区> 开发与运维> 正文

短视频源码php,自动查找重复贴图

简介: 短视频源码php的素材库中,存在各种各样的商品贴图,为了避免出现重复的情况,可以使用如下的代码进行查找

短视频源码php的素材库中,存在各种各样的商品贴图,为了避免出现重复的情况,可以使用如下的代码进行查找:

using System.Collections;
using UnityEngine;
using UnityEditor;
using System.Security.Cryptography;
using System;
using System.IO;
using System.Collections.Generic;

public class FindRepetRes  {

    [MenuItem("Tools/Report/查找重复贴图")]
    static void ReportTexture()
    {
        Dictionary<string,string> md5dic = new Dictionary<string, string> ();
        string[] paths = AssetDatabase.FindAssets("t:prefab",new string[]{"Assets/Resources"});

        foreach (var prefabGuid in paths) {
            string prefabAssetPath = AssetDatabase.GUIDToAssetPath(prefabGuid);
            string[] depend = AssetDatabase.GetDependencies (prefabAssetPath,true);
            for (int i = 0; i < depend.Length; i++) {
                string assetPath = depend [i];
                AssetImporter importer = AssetImporter.GetAtPath(assetPath);
                //满足贴图和模型资源
                if (importer is TextureImporter || importer is ModelImporter) {
                    string md5 = GetMD5Hash(Path.Combine(Directory.GetCurrentDirectory(),assetPath));
                    string path;
                
                    if (!md5dic.TryGetValue (md5, out path)) {
                        md5dic [md5] = assetPath;
                    }else {
                        if (path != assetPath) {
                            Debug.LogFormat ("{0} {1} 资源发生重复!", path, assetPath);
                        }
                    }
                }
            }
        }
    }
    
    /// <summary>
    /// 获取文件Md5
    /// </summary>
    /// <returns>The M d5 hash.</returns>
    /// <param name="filePath">File path.</param>
    static string GetMD5Hash(string filePath)
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        return BitConverter.ToString(md5.ComputeHash(File.ReadAllBytes(filePath))).Replace("-", "").ToLower();
    }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章