源战役客户端
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.
 
 
 
 
 

117 lines
5.2 KiB

/*
检查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);
}
}
}
}
}
}
}