static string testDir = "Assets/LuaScripts/";
[MenuItem("测试/lua命名")]
public static void MakeLuaBundleNames()
{
//获取testDir路径下的所有文件
foreach (var filepath in Directory.GetFiles(testDir, "*.*", SearchOption.AllDirectories))
{
//排除.meta文件
if (filepath.EndsWith(".meta")) continue;
//获得文件
var importer = AssetImporter.GetAtPath(filepath);
//排除一些空文件比如文件夹之类
if (importer == null)
{
//Log.Error("Not found: {0}", filepath);
continue;
}
//获取文件在此testdir中的具体路径
var bundleName = filepath.Substring(testDir.Length, filepath.Length - testDir.Length);
//Debug.Log(bundleName);
/************************************我的lua的命名规则**************************************/
//1.最外层的不会被命名(最外层会有些其他文件)[一个"\"不会被命名]
//2.命名的则ablua/lua_第一层目录_第二层目录, 例: ablua/lua_ablua_battle
//3.目前就2层目录
char b = '\\';
//c# linq语言查询某个字符的个数
//int num = (from q in bundleName where q.Contains(b) select q).Count();
//使用lamda表达式
int count = bundleName.Count(ch => ch == b);
if (count == 2)
{
string[] str = bundleName.Split('\\');
string luaName = "ablua/lua_" + str[0] + "_" + str[1];
//对ab名进行赋值
importer.assetBundleName = luaName;
}
/*********************************************************************************************/
}
Debug.Log("完毕");
}
参考阅读
发表评论