Unity更名插件,增加前后缀,删除指定字符段
直接上源码吧,有注释

using UnityEditor;
public class Rename : EditorWindow
{
private string prefix = null;
private string postfix = null;
private string deleString = null;
private Object[] selectedassets;
//编辑unity编辑器窗口的显示信息
[MenuItem("Tools/Batch Rename")]
public static void ShowWindow()
{
//新建一个窗口
GetWindow<Rename>("Batch Rename");
}
//新建窗口的逻辑实现
private void OnGUI()
{
//创建一个可输入字符段的窗口,窗口名为“前缀”。并将输入的字符串赋值给prefix
prefix = EditorGUILayout.TextField("前缀:", prefix);
//创建一个可输入字符段的窗口,窗口名为“后缀”。并将输入的字符串赋值给postfix
postfix = EditorGUILayout.TextField("后缀:", postfix);
//空格20
GUILayout.Space(20f);
//创建一个名为“添加前后缀”的按钮,当按钮被点击时返回true
if (GUILayout.Button("添加前后缀"))
{
RenameAllSelect();
}
//空格40
GUILayout.Space(40f);
//创建一个可输入字符段的窗口,窗口名为“需要删除的字符段”。并将输入的字符串赋值给deleString
deleString = EditorGUILayout.TextField("需要删除的字符段:", deleString);
//空格20
GUILayout.Space(20f);
//创建一个名为“删除”的按钮,当按钮被点击时返回true
if (GUILayout.Button("删除"))
{
DeletAllSelect();
}
}
private void RenameAllSelect()
{
//取得选中的对象数组
selectedassets = Selection.objects;
//判空
if(selectedassets.Length == 0)
Debug.Log("选中资产再操作!");
else
{
string Path;
string Name;
string tempname;
//这个遍历我第一次见 哈哈哈
foreach(Object obj in selectedassets)
{
//获取原命名
Name = obj.name;
//获取对象文件路径
Path = AssetDatabase.GetAssetPath(obj);
//设置修改后命名为前缀+原命名+后缀
tempname = prefix + Name + postfix;
//指定路径,修改文件命名为tempname
AssetDatabase.RenameAsset(Path , tempname);
}
}
}
private void DeletAllSelect()
{
selectedassets = Selection.objects;
if(selectedassets.Length == 0)
Debug.Log("选中资产再操作!");
else
{
string Path;
string Name;
string tempname;
foreach(Object obj in selectedassets)
{
Name = obj.name;
Path = AssetDatabase.GetAssetPath(obj);
if(deleString.Length != 0)
{
//将指定的deleString字段替换为空,即为删除
tempname = Name.Replace(deleString , "");
AssetDatabase.RenameAsset(Path , tempname);
}
else
Debug.Log("删除字符段不能为空!");
}
}
}
}