少年修仙传客户端基础资源
hch
2025-02-14 822513a5dff92368ef8dfe5d12a3544b67bd747a
Assets/Editor/Tool/UpdateAssetBundleName.cs
@@ -4,6 +4,28 @@
using UnityEditor;
using System.IO;
public class UpdateAllSetting
{
    [MenuItem("程序/设置资源包名/更新全部ABLabel(不包括lua)")]
    public static void SetAllAssetBundleName()
    {
        UpdateSpriteSetting.SetAllSpriteAssetBundleName();
        UpdateUIWindowSetting.SetAllUIWindowAssetBundleName();
        UpdateUIPrefabSetting.SetAllUIPrefabAssetBundleName();
        UpdateEffectPrefabSetting.SetAllEffectPrefabAssetBundleName();
        UpdateMobSetting.SetAllMobAssetBundleName();
        UpdateShaderSetting.SetAllShaderAssetBundleName();
        UpdateScriptableObjectsSetting.SetAllScriptableObjectAssetBundleName();
        UpdateLevelSetting.SetAllLevelAssetBundleName();
        UpdateAudioSetting.SetAllAudioAssetBundleName();
        UpdateVideoSetting.SetAllVideoAssetBundleName();
        UpdateBuiltInSetting.SetBuiltinAssetBundleName();
        AssetDatabase.Refresh();
        DebugEx.Log("资源包名全部更新完成!");
    }
}
public class UpdateSpriteSetting
{
@@ -26,7 +48,18 @@
    [MenuItem("程序/设置资源包名/更新Sprite(All) AssetBundleName")]
    public static void SetAllSpriteAssetBundleName()
    {
        var allFiles = new DirectoryInfo(rootPath).GetFiles("*.png", SearchOption.AllDirectories);
        //改成设置atlas的assetBundleName
        var allFiles = new DirectoryInfo(rootPath).GetFiles("*.spriteatlasv2", SearchOption.AllDirectories);
        foreach (var file in allFiles)
        {
            var importerPath = spriteRelativePath + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "ui/sprite/" + file.Name.Split(".")[0].ToLower();
            // EditorUtility.SetDirty(importer);
        }
        allFiles = new DirectoryInfo(rootPath).GetFiles("*.png", SearchOption.AllDirectories);
        foreach (var file in allFiles)
        {
@@ -34,11 +67,13 @@
            var importerPath = spriteRelativePath + Path.DirectorySeparatorChar + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "ui/sprite/" + pathStringArray[pathStringArray.Length - 1].ToLower();
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Sprite资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
@@ -59,9 +94,8 @@
            var importer = AssetImporter.GetAtPath(path);
            importer.assetBundleName = "ui/window";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        guids = AssetDatabase.FindAssets("t:prefab", new string[] { assetRelativePath2 });
        foreach (var guid in guids)
        {
@@ -69,11 +103,11 @@
            var importer = AssetImporter.GetAtPath(path);
            importer.assetBundleName = StringUtility.Contact("ui/prioritywindow/", Path.GetFileNameWithoutExtension(path).ToLower());
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Window资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
@@ -100,7 +134,7 @@
            var importerPath = prefabAssetRelativePath + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "ui/prefab";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        allFiles = new DirectoryInfo(bossShowRootPath).GetFiles("*.prefab", SearchOption.TopDirectoryOnly);
@@ -109,7 +143,7 @@
            var importerPath = bossShowAssetRelativePath + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "ui/bossshow";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        allFiles = new DirectoryInfo(godWeaponRootPath).GetFiles("*.prefab", SearchOption.TopDirectoryOnly);
@@ -118,7 +152,7 @@
            var importerPath = godWeaponAssetRelativePath + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "ui/godweapon";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        allFiles = new DirectoryInfo(treasureRootPath).GetFiles("*.prefab", SearchOption.AllDirectories);
@@ -128,11 +162,11 @@
            var importerPath = treasureAssetRelativePath + Path.DirectorySeparatorChar + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "ui/treasure/" + pathStringArray[pathStringArray.Length - 1].ToLower();
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Prefab资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
@@ -154,26 +188,26 @@
            var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "effect/" + pathStringArray[pathStringArray.Length - 1].ToLower();
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Effect资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
public class UpdateMobSetting
{
    static string rootPath = Application.dataPath + "/ResourcesOut/Mob";
    static string assetPath = "Assets/ResourcesOut/Mob";
    static string createroleRoot = Application.dataPath + "/ResourcesOut/Mob/CreateRole";
    static string createroleAssetPath = "Assets/ResourcesOut/Mob/CreateRole";
    static string rootPath = Application.dataPath + "/ResourcesOut/Gmodels";
    static string assetPath = "Assets/ResourcesOut/Gmodels";
    static string createroleRoot = Application.dataPath + "/ResourcesOut/Gmodels/CreateRole";
    static string createroleAssetPath = "Assets/ResourcesOut/Gmodels/CreateRole";
    static string zsMaterialPath_Origin = Application.dataPath + "/Art/Role/A_Zs/Materials";
    static string fsMaterialPath_Origin = Application.dataPath + "/Art/Role/A_Fs/Materials";
    static string zsMaterialPath_OutPut = Application.dataPath + "/ResourcesOut/Mob/A_Zs/Materials";
    static string fsMaterialPath_OutPut = Application.dataPath + "/ResourcesOut/Mob/A_Fs/Materials";
    static string zsMaterialPath_OutPut = Application.dataPath + "/ResourcesOut/Gmodels/A_Zs/Materials";
    static string fsMaterialPath_OutPut = Application.dataPath + "/ResourcesOut/Gmodels/A_Fs/Materials";
    [MenuItem("程序/设置资源包名/更新Mob(All) AssetBundleName")]
    public static void SetAllMobAssetBundleName()
@@ -193,8 +227,8 @@
                                                 .Replace(".prefab", "")
                                                 .Replace("Prefab_Hand", "");
            importer.assetBundleName = StringUtility.Contact("mob/prefab_race", hostfix);
            EditorUtility.SetDirty(importer);
            importer.assetBundleName = StringUtility.Contact("gmodels/prefab_race", hostfix);
            // EditorUtility.SetDirty(importer);
        }
        allFiles = new DirectoryInfo(createroleRoot).GetFiles("*.prefab", SearchOption.TopDirectoryOnly);
@@ -203,8 +237,8 @@
            var importerPath = createroleAssetPath + Path.DirectorySeparatorChar + file.Name;
            var extersion = Path.GetExtension(file.FullName);
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "mob/createrole";
            EditorUtility.SetDirty(importer);
            importer.assetBundleName = "gmodels/createrole";
            // EditorUtility.SetDirty(importer);
        }
        //var zsMaterialFiles = new DirectoryInfo(zsMaterialPath_Origin).GetFiles("*.mat", SearchOption.TopDirectoryOnly);
@@ -240,14 +274,14 @@
            if (_file.Name.StartsWith("A_Zs_Sz"))
            {
                string _abName = Path.GetFileNameWithoutExtension(_file.Name).Replace("_Dm", "");
                _importer.assetBundleName = "mob/prefab_race_" + _abName;
                _importer.assetBundleName = "gmodels/prefab_race_" + _abName;
            }
            else
            {
                string _abName = Path.GetFileNameWithoutExtension(_file.Name).Replace("_02", "").Replace("_Dm", "").Replace("_Dm_02", "");
                _importer.assetBundleName = "mob/prefab_race_" + _abName;
                _importer.assetBundleName = "gmodels/prefab_race_" + _abName;
            }
            EditorUtility.SetDirty(_importer);
            // EditorUtility.SetDirty(_importer);
        }
        var fsMaterialPathOutFiles = new DirectoryInfo(fsMaterialPath_OutPut).GetFiles("*.mat", SearchOption.TopDirectoryOnly);
@@ -259,18 +293,18 @@
            if (_file.Name.StartsWith("A_Fs_Sz"))
            {
                string _abName = Path.GetFileNameWithoutExtension(_file.Name).Replace("_Dm", "");
                _importer.assetBundleName = "mob/prefab_race_" + _abName;
                _importer.assetBundleName = "gmodels/prefab_race_" + _abName;
            }
            else
            {
                string _abName = Path.GetFileNameWithoutExtension(_file.Name).Replace("_02", "").Replace("_Dm", "").Replace("_Dm_02", "");
                _importer.assetBundleName = "mob/prefab_race_" + _abName;
                _importer.assetBundleName = "gmodels/prefab_race_" + _abName;
            }
            EditorUtility.SetDirty(_importer);
            // EditorUtility.SetDirty(_importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
        //foreach (var file in zsMaterialFiles)
        //{
@@ -278,7 +312,7 @@
        //    var importerPath = assetPath + "/A_Zs/Materials/" + file.Name;
        //    var importer = AssetImporter.GetAtPath(importerPath);
        //    importer.assetBundleName = "mob/a_zs_materials";
        //    importer.assetBundleName = "gmodels/a_zs_materials";
        //    EditorUtility.SetDirty(importer);
        //}
@@ -288,10 +322,10 @@
        //    var importerPath = assetPath + "/A_Fs/Materials/" + file.Name;
        //    var importer = AssetImporter.GetAtPath(importerPath);
        //    importer.assetBundleName = "mob/a_fs_materials";
        //    importer.assetBundleName = "gmodels/a_fs_materials";
        //    EditorUtility.SetDirty(importer);
        //}
        DebugEx.Log("Gmodels资源包名更新完成!");
        //AssetDatabase.SaveAssets();
        //AssetDatabase.Refresh();
    }
@@ -311,11 +345,11 @@
            var importerPath = assetPath + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "graphic/shader";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Shader资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
@@ -340,19 +374,21 @@
                var importerPath = assetPath + relativePath + Path.DirectorySeparatorChar + file.Name;
                var importer = AssetImporter.GetAtPath(importerPath);
                importer.assetBundleName = "config/scriptableobjects";
                EditorUtility.SetDirty(importer);
                // EditorUtility.SetDirty(importer);
            }
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("ScriptableObject资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
public class UpdateLevelSetting
{
    static string exportMapsPath = Application.dataPath + "/Editor/Config/ExportMaps.txt";
    static string rootPath = Application.dataPath + "/Art/Maps/Scenes";
    static string assetPath = "Assets/Art/Maps/Scenes";
    static HashSet<string> exportMaps;//去除的地图列表
    public static void SetCreateRoleLevel(string pattern)
    {
@@ -373,13 +409,20 @@
    [MenuItem("程序/设置资源包名/更新Level(All) AssetBundleName")]
    public static void SetAllLevelAssetBundleName()
    {
        ReadExportConfig();
        var allFiles = new DirectoryInfo(rootPath).GetFiles("*.unity", SearchOption.TopDirectoryOnly);
        foreach (var file in allFiles)
        {
            var importerPath = assetPath + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "maps/" + Path.GetFileNameWithoutExtension(file.FullName).ToLower();
            EditorUtility.SetDirty(importer);
            var name = Path.GetFileNameWithoutExtension(file.FullName);
            if (exportMaps.Contains(name)) //判断这个地图是否被排除,被排除不打包
                importer.assetBundleName = "";
            else
                importer.assetBundleName = "maps/" + name.ToLower();
            // EditorUtility.SetDirty(importer);
        }
        var createRoleAssets = AssetDatabase.FindAssets("t:prefab", new string[] { "Assets/ResourcesOut/Scene/CreateRole" });
@@ -387,7 +430,7 @@
        {
            var importer = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(item));
            importer.assetBundleName = "maps/createrole";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        var textures = AssetDatabase.FindAssets("t:Texture2D", new string[] { "Assets/ResourcesOut/Scene/Textures" });
@@ -395,11 +438,23 @@
        {
            var importer = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(item));
            importer.assetBundleName = "maps/textures";
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        exportMaps?.Clear();
        exportMaps = null;
        DebugEx.Log("map资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    //读取排除地图的配置
    private static void ReadExportConfig()
    {
        if (File.Exists(exportMapsPath))
        {
            var lines = File.ReadAllLines(exportMapsPath);
            exportMaps = new HashSet<string>(lines);
        }
    }
}
@@ -420,11 +475,11 @@
            var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "audio/" + pathStringArray[pathStringArray.Length - 1].ToLower();
            EditorUtility.SetDirty(importer);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Audio资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
@@ -436,44 +491,19 @@
    [MenuItem("程序/设置资源包名/更新Video(All) AssetBundleName")]
    public static void SetAllVideoAssetBundleName()
    {
        if (!Directory.Exists(rootPath))
            return;
        var allFiles = new DirectoryInfo(rootPath).GetFiles("*.mp4", SearchOption.AllDirectories);
        foreach (var file in allFiles)
        {
            var importerPath = assetPath + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "video/mp4";
            EditorUtility.SetDirty(importer);
            importer.assetBundleName = "video/"+Path.GetFileNameWithoutExtension(file.FullName);
            // EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
}
public class UpdateLuaSetting
{
    static string rootPath = Application.dataPath + "/ResourcesOut/Lua/";
    static string assetPath = "Assets/ResourcesOut/Lua/";
    [MenuItem("程序/设置资源包名/更新Lua(All) AssetBundleName")]
    public static void SetAllLuaAssetBundleName()
    {
        var allFiles = new DirectoryInfo(rootPath).GetFiles("*.txt", SearchOption.AllDirectories);
        var amendRootPath = rootPath.Replace("\\", "/");
        foreach (var file in allFiles)
        {
            var directoryName = file.DirectoryName.Replace("\\", "/");
            var relativeDirectory = directoryName.Replace(amendRootPath, "");
            var importerPath = assetPath + relativeDirectory + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "lua/" + relativeDirectory.ToLower();
            EditorUtility.SetDirty(importer);
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("Video资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}
@@ -495,18 +525,26 @@
            if (extension == ".meta")
            {
                continue;
            }
            if (extension == ".DS_Store")
            {
                continue;
            }
            var directoryName = file.DirectoryName.Replace("\\", "/");
            var relativeDirectory = directoryName.Replace(amendRootPath, "");
            var importerPath = assetPath + relativeDirectory + Path.DirectorySeparatorChar + file.Name;
            var importer = AssetImporter.GetAtPath(importerPath);
            importer.assetBundleName = "builtin/" + relativeDirectory.ToLower();
            EditorUtility.SetDirty(importer);
            if (file.Name != ".DS_Store")
            {
                var importer = AssetImporter.GetAtPath(importerPath);
                importer.assetBundleName = "builtin/" + relativeDirectory.ToLower();
                // EditorUtility.SetDirty(importer);
            }
        }
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        DebugEx.Log("BuiltIn资源包名更新完成!");
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
    }
}