|
|
- /*
- 检查allBg图片引用
- */
-
- using UnityEditor;
- using UnityEngine;
- using System.IO;
- using System.Collections;
-
- namespace CheckAllBgUseInCodeNameSpace {
- public class CheckAllBgUseInCode
- {
- private static string luaPath = @"H:\Tomorrow\develop\code\u3d\Lua\game";
- private static string luaPath2 = @"H:\Tomorrow\develop\code\u3d\Lua\newgameui";
- private static string allBgPath = @"H:\Tomorrow\develop\code\u3d\Assets\LuaFramework\AssetBundleRes\icon\allBg";
- private static string[] check_result_list;
- private static ArrayList mid_check_result_array = new ArrayList();
- private static ArrayList end_check_result_array = new ArrayList();
-
- [MenuItem("Tools/检查allBg的代码引用")]
- public static void SelectFile()
- {
- //获取指定路径下面的所有资源文件
- if (Directory.Exists(allBgPath))
- {
- CheckPathFileWord();
- }
- }
-
- //要处理的目录
- static void CheckPathFileWord()
- {
- DirectoryInfo pngDirection = new DirectoryInfo(allBgPath);
- FileInfo[] pngFiles = pngDirection.GetFiles("*.png", SearchOption.AllDirectories);
- int startIndex = 0;
- string[] luaFiles = {};
- string[] luaFiles2 = {};
- mid_check_result_array = new ArrayList();
- end_check_result_array = new ArrayList();
- luaFiles = Directory.Exists(luaPath)?Directory.GetFiles(luaPath, "*.lua", SearchOption.AllDirectories):luaFiles;
- //还有一个路径也要加入筛选
- luaFiles2 = Directory.Exists(luaPath2)?Directory.GetFiles(luaPath2, "*.lua", SearchOption.AllDirectories):luaFiles;
-
- EditorApplication.update = delegate ()
- {
- int allLen = luaFiles.Length + luaFiles2.Length;
- string filePath = "";
- if (startIndex <= luaFiles.Length - 1){
- filePath = luaFiles.Length>0?GetRelativeAssetsPath(luaFiles[startIndex]):"检索路径不存在(@#!%*&)";
- }
- else{
- filePath = luaFiles2.Length>0?GetRelativeAssetsPath(luaFiles2[startIndex - luaFiles.Length]):"检索路径不存在(@#!%*&)";
- }
- if (!filePath.Contains("路径不存在(@#!%*&)")) SetArabicSupToLua( filePath, pngFiles);
- /*------------------------------*/
- bool isCancel = EditorUtility.DisplayCancelableProgressBar(string.Format("资源检查中({0}/{1})", startIndex, allLen), filePath, (float)startIndex / (float)allLen);
- startIndex++;
- if (startIndex >= allLen)
- {
- // AssetDatabase.Refresh();
- // AssetDatabase.SaveAssets();
- EditorUtility.ClearProgressBar();
- EditorApplication.update = null;
- startIndex = 0;
- string tempFileName;
- for (int i = 0; i < pngFiles.Length; i++)
- {
- tempFileName = pngFiles[i].Name.Replace(".png","");
- if (!mid_check_result_array.Contains(tempFileName)) {
- end_check_result_array.Add(tempFileName);
- }
- }
- // 保存数据
- tempFileName = "";
- foreach (object obj in end_check_result_array)
- {
- tempFileName = tempFileName + obj.ToString() + "\n";
- }
- string confighFilePath = Application.streamingAssetsPath + "/CheckAllBgUseInCode.txt";
- File.WriteAllText(confighFilePath, tempFileName);
- EditorUtility.DisplayDialog("处理完成", "allBg资源检查结束" , "Ok");
- System.Diagnostics.Process.Start("explorer.exe", Application.streamingAssetsPath.Replace("/", "\\"));
- System.Diagnostics.Process.Start("explorer.exe", confighFilePath.Replace("/", "\\"));
- }
- else if (isCancel) {
- Debug.Log( "处理中止" );
- EditorUtility.ClearProgressBar();
- EditorApplication.update = null;
- }
- };
-
- }
-
- static private string GetRelativeAssetsPath(string path)
- {
- return Path.GetFullPath(path).Replace(Path.GetFullPath(Application.dataPath), "").Replace('\\', '/');
- }
-
- static void SetArabicSupToLua(string path, FileInfo[] pngFiles)
- {
- using (StreamReader reader = new StreamReader(path))
- {
- string dataStr = reader.ReadToEnd();
- string tempFileName;
- for (int i = 0; i < pngFiles.Length; i++)
- {
- tempFileName = pngFiles[i].Name.Replace(".png","");
- if (dataStr.Contains(tempFileName)) {
- if (!mid_check_result_array.Contains(tempFileName)) {
- mid_check_result_array.Add(tempFileName);
- }
- }
- }
- }
- }
- }
- }
|