[MenuItem("Tools/切换资源文件夹/简体中文")]
static void ChangePlatformZH_CN()
{
ChangeResourcePlatform(Application.dataPath + "/ResourcePlatform/ZH_CN/", "/ResourcePlatform/ZH_CN");
Debug.Log("已切换简体中文");
}
[MenuItem("Tools/切换资源文件夹/繁体中文")]
static void ChangePlatformZH_TW()
{
ChangeResourcePlatform(Application.dataPath + "/ResourcePlatform/ZH_TW/", "/ResourcePlatform/ZH_TW");
Debug.Log("已切换繁体中文");
}
static void ChangeResourcePlatform(string path, string replacePath)
{
List<string> dirs = new List<string>();
GetDirs(path, ref dirs);
for (int i = 0; i < dirs.Count; i++)
{
string sourcePath = dirs[i];
string targetPath = sourcePath.Replace(replacePath, "");
targetPath = targetPath.Replace("ResourcesReplace", "Resources");
string directoryPath = Path.GetDirectoryName(targetPath);
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
File.Copy(sourcePath, targetPath, true);
}
AssetDatabase.Refresh();
}
//参数1 为要查找的总路径, 参数2 保存路径
private static void GetDirs(string dirPath, ref List<string> dirs)
{
foreach (string path in Directory.GetFiles(dirPath))
{
//获取所有文件夹中包含后缀为 .prefab 的路径
if (System.IO.Path.GetExtension(path) != ".meta")
{
dirs.Add(path);
}
}
if (Directory.GetDirectories(dirPath).Length > 0) //遍历所有文件夹
{
foreach (string path in Directory.GetDirectories(dirPath))
{
GetDirs(path, ref dirs);
}
}
}