46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Linq;
|
|
|
|
public class RenameTool : EditorWindow
|
|
{
|
|
private string prefix = "Object_"; //前缀
|
|
private int startIndex = 1; //序号起始值
|
|
private int step = 1; //序号递增值
|
|
|
|
[MenuItem("Tools/Rename Tool")] //在Unity菜单中添加一个名为“Rename Tool”的工具选项
|
|
public static void ShowWindow()
|
|
{
|
|
EditorWindow.GetWindow(typeof(RenameTool));
|
|
}
|
|
|
|
void OnGUI()
|
|
{
|
|
GUILayout.Label("Object Renaming Tool", EditorStyles.boldLabel); //在编辑器窗口中显示标题
|
|
|
|
prefix = EditorGUILayout.TextField("Prefix:", prefix); //添加文本框,以便用户输入前缀
|
|
|
|
startIndex = EditorGUILayout.IntField("Start Index:", startIndex); //添加文本框,以便用户输入序号的起始值
|
|
|
|
step = EditorGUILayout.IntField("Step:", step); //添加文本框,以便用户输入序号的递增值
|
|
|
|
if (GUILayout.Button("Rename Selected Objects"))
|
|
{
|
|
RenameSelectedObjects(); //添加一个按钮,以便用户单击以开始对选择的物体进行重命名
|
|
}
|
|
}
|
|
|
|
private void RenameSelectedObjects()
|
|
{
|
|
int index = startIndex;
|
|
|
|
var result = Selection.gameObjects.OrderBy(obj => obj.transform.GetSiblingIndex());
|
|
|
|
foreach (GameObject gameObject in result) //循环遍历选中的每个物体
|
|
{
|
|
gameObject.name = prefix + index; //为该物体命名并添加前缀和序号
|
|
|
|
index += step; //递增序号
|
|
}
|
|
}
|
|
} |