批量修改assets下图标名称

[MenuItem("Assets/misc/批量修改技能图标")]
public static void 一键改技能图标名称()
{
    List<DirectoryInfo> DirectoryList = new List<DirectoryInfo>();
    List<string> PathsList = new List<string>();
    Dictionary<string, string> IconTransID = new Dictionary<string, string>();

    if (Selection.assetGUIDs != null)
    {
        for (int i = 0; i < Selection.assetGUIDs.Length; i++)
        {
            DirectoryInfo direction = new DirectoryInfo(AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[i]));
            PathsList.Add(AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[i]));
            DirectoryList.Add(direction);
        }
    }

    //读技能表
    var info = CfgMgr.Instance.GetSkillCfgDic().GetEnumerator();
    while (info.MoveNext())
    {
        string key = info.Current.Value.icon + ".png";
        if (!IconTransID.ContainsKey(key))
        {
            IconTransID.Add(key, info.Current.Value.id.ToString());
        }
    }
    info.Dispose();

    for (int i = 0; i < DirectoryList.Count; i++)
    {
        FileInfo[] files = DirectoryList[i].GetFiles("*", SearchOption.AllDirectories);
        for (int jj = 0; jj < files.Length; jj++)
            if (files[jj].Name.EndsWith(".png") || files[jj].Name.EndsWith(".jpg"))
            {
                EditorUtility.DisplayProgressBar("正在处理...", files[jj].Name, jj * 1.0f / files[jj].Length);
                if (IconTransID.ContainsKey(files[jj].Name))
                {
                    string path = string.Format("{0}/{1}", PathsList[i], files[jj].Name);
                    string newName = string.Format("{0}", IconTransID[files[jj].Name]);
                    AssetDatabase.RenameAsset(path, newName);
                    EDebug.Log("{0} Rename Success!" + files[jj].Name);
                }
            }
    }
    AssetDatabase.SaveAssets();
    AssetDatabase.Refresh();
    EDebug.Log("批量修改技能图标完成!");
    EditorUtility.ClearProgressBar();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值