根据项目需要,对场景中的预制件名字进行批量修改,编写一个小插件工具。
public class JSRename : EditorWindow
{
public Object source;
[MenuItem("Tools/改名")]//在菜单栏中插入一个“改名”的操作
static void ChangeNameNum()
{
EditorWindow.GetWindow(typeof(JSRename));
}
void OnGUI()
{
GUILayout.Label("Root", EditorStyles.boldLabel);
//选中需要进行操作的对象
source = EditorGUILayout.ObjectField(source, typeof(Object), true);
obj = source as GameObject;
//在这里输入相应的内容
strName = EditorGUILayout.TextField("基本名称", strName);
GUILayout.BeginHorizontal();
if (GUILayout.Button("执行"))
{
Transform trans;
for (int num = 0; num < obj.transform.childCount; num++)
{
startValue = 1;
trans = obj.transform.GetChild(num);
if (!trans.gameObject.activeSelf)
{
continue;
}
//项目中命名方式为a_bF_c
oldstr = trans.name.Split('_');
//根据自己需要进行扩展,可以对父节点下的子物体名字按规则进行修改,也可以加入检查命名方式的代码
trans.name = string.Format("{0}_{1}_{2}_{3}", oldstr[0], str2 + "F",oldstr[2], startValue)
startValue++;//用于对物体数量编号的编写
}
}
}
GUILayout.EndHorizontal();
}
}
使用的时候,选中父节点,现在子节点名字是a_bF_c,可以直接全部修改为a_dF_c