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("完毕");

}

 

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。