1. 程式人生 > >unity的assetbundle的自動命名,以我的命名lua為例

unity的assetbundle的自動命名,以我的命名lua為例

length make 命名規則 bst deb pan subst erro char

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

unity的assetbundle的自動命名,以我的命名lua為例