源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
5.2 KiB

  1. /*
  2. allBg图片引用
  3. */
  4. using UnityEditor;
  5. using UnityEngine;
  6. using System.IO;
  7. using System.Collections;
  8. namespace CheckAllBgUseInCodeNameSpace {
  9. public class CheckAllBgUseInCode
  10. {
  11. private static string luaPath = @"H:\Tomorrow\develop\code\u3d\Lua\game";
  12. private static string luaPath2 = @"H:\Tomorrow\develop\code\u3d\Lua\newgameui";
  13. private static string allBgPath = @"H:\Tomorrow\develop\code\u3d\Assets\LuaFramework\AssetBundleRes\icon\allBg";
  14. private static string[] check_result_list;
  15. private static ArrayList mid_check_result_array = new ArrayList();
  16. private static ArrayList end_check_result_array = new ArrayList();
  17. [MenuItem("Tools/检查allBg的代码引用")]
  18. public static void SelectFile()
  19. {
  20. //获取指定路径下面的所有资源文件
  21. if (Directory.Exists(allBgPath))
  22. {
  23. CheckPathFileWord();
  24. }
  25. }
  26. //要处理的目录
  27. static void CheckPathFileWord()
  28. {
  29. DirectoryInfo pngDirection = new DirectoryInfo(allBgPath);
  30. FileInfo[] pngFiles = pngDirection.GetFiles("*.png", SearchOption.AllDirectories);
  31. int startIndex = 0;
  32. string[] luaFiles = {};
  33. string[] luaFiles2 = {};
  34. mid_check_result_array = new ArrayList();
  35. end_check_result_array = new ArrayList();
  36. luaFiles = Directory.Exists(luaPath)?Directory.GetFiles(luaPath, "*.lua", SearchOption.AllDirectories):luaFiles;
  37. //还有一个路径也要加入筛选
  38. luaFiles2 = Directory.Exists(luaPath2)?Directory.GetFiles(luaPath2, "*.lua", SearchOption.AllDirectories):luaFiles;
  39. EditorApplication.update = delegate ()
  40. {
  41. int allLen = luaFiles.Length + luaFiles2.Length;
  42. string filePath = "";
  43. if (startIndex <= luaFiles.Length - 1){
  44. filePath = luaFiles.Length>0?GetRelativeAssetsPath(luaFiles[startIndex]):"检索路径不存在(@#!%*&)";
  45. }
  46. else{
  47. filePath = luaFiles2.Length>0?GetRelativeAssetsPath(luaFiles2[startIndex - luaFiles.Length]):"检索路径不存在(@#!%*&)";
  48. }
  49. if (!filePath.Contains("路径不存在(@#!%*&)")) SetArabicSupToLua( filePath, pngFiles);
  50. /*------------------------------*/
  51. bool isCancel = EditorUtility.DisplayCancelableProgressBar(string.Format("资源检查中({0}/{1})", startIndex, allLen), filePath, (float)startIndex / (float)allLen);
  52. startIndex++;
  53. if (startIndex >= allLen)
  54. {
  55. // AssetDatabase.Refresh();
  56. // AssetDatabase.SaveAssets();
  57. EditorUtility.ClearProgressBar();
  58. EditorApplication.update = null;
  59. startIndex = 0;
  60. string tempFileName;
  61. for (int i = 0; i < pngFiles.Length; i++)
  62. {
  63. tempFileName = pngFiles[i].Name.Replace(".png","");
  64. if (!mid_check_result_array.Contains(tempFileName)) {
  65. end_check_result_array.Add(tempFileName);
  66. }
  67. }
  68. // 保存数据
  69. tempFileName = "";
  70. foreach (object obj in end_check_result_array)
  71. {
  72. tempFileName = tempFileName + obj.ToString() + "\n";
  73. }
  74. string confighFilePath = Application.streamingAssetsPath + "/CheckAllBgUseInCode.txt";
  75. File.WriteAllText(confighFilePath, tempFileName);
  76. EditorUtility.DisplayDialog("处理完成", "allBg资源检查结束" , "Ok");
  77. System.Diagnostics.Process.Start("explorer.exe", Application.streamingAssetsPath.Replace("/", "\\"));
  78. System.Diagnostics.Process.Start("explorer.exe", confighFilePath.Replace("/", "\\"));
  79. }
  80. else if (isCancel) {
  81. Debug.Log( "处理中止" );
  82. EditorUtility.ClearProgressBar();
  83. EditorApplication.update = null;
  84. }
  85. };
  86. }
  87. static private string GetRelativeAssetsPath(string path)
  88. {
  89. return Path.GetFullPath(path).Replace(Path.GetFullPath(Application.dataPath), "").Replace('\\', '/');
  90. }
  91. static void SetArabicSupToLua(string path, FileInfo[] pngFiles)
  92. {
  93. using (StreamReader reader = new StreamReader(path))
  94. {
  95. string dataStr = reader.ReadToEnd();
  96. string tempFileName;
  97. for (int i = 0; i < pngFiles.Length; i++)
  98. {
  99. tempFileName = pngFiles[i].Name.Replace(".png","");
  100. if (dataStr.Contains(tempFileName)) {
  101. if (!mid_check_result_array.Contains(tempFileName)) {
  102. mid_check_result_array.Add(tempFileName);
  103. }
  104. }
  105. }
  106. }
  107. }
  108. }
  109. }