一、 效果展示

二、代码

#if UNITY_EDITOR
using System.IO;
using UnityEditor;
using UnityEngine;namespace CustomEditorWindow
{public class RenameTool : EditorWindow{#region membersprivate Vector2 scrollPos;private int charSize;private string targetName = string.Empty;private string startNum_str = "0";private int startNum_int = 0;#endregion#region get window[MenuItem("Tools/Rename Tool")]private static void OpenWindow(){GetWindow<RenameTool>("Rename Tool").Show();}#endregion#region render the windowprivate void OnGUI(){scrollPos = GUILayout.BeginScrollView(scrollPos);{#region tool titlecharSize = GUI.skin.label.fontSize;GUI.color = Color.yellow;GUILayout.Space(10);                GUI.skin.label.fontSize = 24;GUI.skin.label.alignment = TextAnchor.MiddleCenter;GUILayout.Label("Rename Tool");GUI.skin.label.fontSize = charSize;GUI.skin.label.alignment = TextAnchor.MiddleLeft;GUI.color = Color.white;GUILayout.Space(20);#endregionGUILayout.BeginVertical();{#region text inputGUILayout.BeginHorizontal();{GUILayout.Label("Name Style: ");GUILayout.FlexibleSpace();targetName = GUILayout.TextField(targetName, GUILayout.Width(140));}GUILayout.EndHorizontal();GUILayout.Space(10);GUILayout.BeginHorizontal();{GUILayout.Label("Start Number: ");GUILayout.FlexibleSpace();startNum_str = GUILayout.TextField(startNum_str, GUILayout.Width(60));try{startNum_int = int.Parse(startNum_str);}catch{}}GUILayout.EndHorizontal();#endregion#region buttonGUILayout.Space(30);bool hasObject = (Selection.objects.Length > 0);GUI.enabled = hasObject;GUILayout.FlexibleSpace();if (!hasObject){GUI.color = Color.red;GUILayout.Button("No Selected Objects!");GUI.color = Color.white;}else{if (GUILayout.Button("Rename")){Rename(targetName, startNum_int);}}GUILayout.Space(20);#endregion}GUILayout.EndVertical();}GUILayout.EndScrollView();}#endregion#region Rename Functionprivate void Rename(string t_name, int t_index){string name = t_name.Trim();//去除头尾空白字符串int index = t_index;if ((name + index) != string.Empty)//若名字不为空{bool isAssetsObject = false;//flag, 是否是assets文件夹的资源foreach (Object o in Selection.objects){string path_g = AssetDatabase.GetAssetPath(o);//获得选中物的路径//查看路径后缀if (Path.GetExtension(path_g) != "")//若后缀不为空, 则为assets文件夹物体{if (name.Length >=2 && name.Substring(0, 2) == "m_")// m_ 开头会被吞{//用 M_ 修正string temp_name = name.Remove(0, 1);name = temp_name.Insert(0, "M");}AssetDatabase.RenameAsset(path_g, name + index);//改名APIif (!isAssetsObject){isAssetsObject = true;//修改flag}}else//后缀为空, 是场景物体{o.name = name + index;}index++;}if (isAssetsObject)//若是assets文件夹资源, 则刷新assets{AssetDatabase.SaveAssets();AssetDatabase.Refresh();}}}#endregion}
}
#endif

Unity 批量修改命名(重命名)相关推荐

  1. python 文件名批量修改、重命名

    该脚本用于文件名的批量修改.重命名 # -*- coding: utf-8 -*- import os from os import listdirdef main():gt_path = 'C:\\ ...

  2. windows下使用cmd命令文件批量重命名批量修改后缀重命名快捷键

    windows下重命名快捷键 按下F2重命名当前选中文件,输入完新的文件名之后不要回车保存,直接按下Tab键就会进入下一个文件的重命名. windows 下批量修改文件后缀 使用ren或者rename ...

  3. matlab文件批量命名,利用MATLAB批量对文件重命名

    利用MATLAB批量对文件重命名 tags: MATLAB 科研软件 序 窃·格瓦拉 没paper,实验肯定要做啊,不做就毕不了业 . 编程这方面,编程是不可能编程的,这辈子不可能编程的 . pape ...

  4. 如何批量给文件重命名?

    如何批量给文件重命名?电脑使用久了就会保存越来越多的文件,如果你有些许的强迫症,肯定不愿意电脑中的文件杂乱无章,这时候就需要对这些文件进行整理,整理文件的第一步就需要对相关联的文件进行重命名,让文件名 ...

  5. 如何批量给图片重命名?

    如何批量给图片重命名?小编是一名业余摄影爱好者,平常没事的时候喜欢拿相机到处拍一拍,时间久了电脑里就有了各种各样的美景图片,如果不对这些美景图片进行整理,时间久了就会很乱,整理图片最重要的就是分门别类 ...

  6. 如何批量给图片重命名序号和名字?

    如何批量给图片重命名序号和名字?小编之前由于工作性质不同的原因,每一项工作会产生很多的图片文件,时间久了电脑里存储了很多的图片,图片名称不统一很杂乱,在之后的查找和使用时就变得很不方便,这时候就需要对 ...

  7. matlab文件名加前缀_利用MATLAB批量对文件重命名

    利用MATLAB批量对文件重命名 tags: - MATLAB - 科研软件 序 没paper,实验肯定要做啊,不做就毕不了业 . 编程这方面,编程是不可能编程的,这辈子不可能编程的 . paper又 ...

  8. Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略

    Python之pandas:对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 目录 对pandas中dataframe数据中的索引输出.修改.重命名等详细攻略 知识点学习 输 ...

  9. python实现批量图片/文件重命名

    python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...

  10. C# FileSystemWatcher 实时监控文件的增加、修改、重命名和删除实例

    好多时候,我们都需要知道某些目录下的文件什么时候被修改.删除过等,如果能用miniFilter驱动过滤来做的话当然是最好不过了,这是内核级别的,当然也比较复杂.如果只是简单的记录就没必要用驱动过滤级别 ...

最新文章

  1. plt.rcParams
  2. php nsdata,iOS播放PCM,NSData流代码(Audio Queue Services)
  3. 用单片机测量流体流速的_曹阳等:钻井用节流阀抗冲蚀性能的实验评价
  4. 3-unit1 IPv6网络的管理
  5. CONVERT_TIME_INPUT
  6. zookeeper分布式锁代码实例
  7. jQuery Css方法
  8. cocos2d-x初探学习笔记(9)--粒子系统
  9. Sun Cluster3.3+Oracle11g配置数据库资源问题
  10. ASP.NET Core 网站在Docker中运行
  11. 用JavaFX编写图块引擎
  12. ORA-28001: the password has expired (DBD ERROR: OCISessionBegin)解决办法
  13. Elasticsearch OOM(内存溢出)
  14. 商务部回应中兴被罚:坚决反对美国用国内法制裁中企
  15. 用“无线诊断”工具解决 Mac 出现的 WiFi 连接问题
  16. Dubbo源码解析-Dubbo架构的实现
  17. win gvim erlang 环境配置
  18. 汇率,汇率接口,汇率行情数据
  19. redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required
  20. python 回溯算法总结

热门文章

  1. ROT13加密与解密(一种加密和解密都会得到同样答案的密文)“替换式密码算法”
  2. 基于低功耗蓝牙的手机APP(文末有整个工程的下载连接哦!)
  3. 条码打印机---关于碳带的选择
  4. IE8 的开发人员工具 出不来了 怎么办?
  5. 李想:从放弃高考到如今第三次创业,我的经验和教训
  6. 关于echarts中,南海诸岛不显示的问题
  7. linux top 更新时间,linux top详解
  8. 语音差分编码(DPCM)的实现与改进——Python实现
  9. 【报错】date: invalid date ‘2 days ago+%Y%m%d‘
  10. 数据与广告系列二十一:关于品牌广告,奔涌吧后浪