slowpoker/Assets/SharedAssets/Scripts/Editor/RenameToPrefabName.cs
2024-10-17 17:23:05 +03:00

36 lines
958 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class RenameToPrefabName : MonoBehaviour
{
[MenuItem("GameObject/To Prefab Name", false, 1)]
public static void RenameSelected()
{
Object obj = Selection.activeObject;
GameObject go = (GameObject) obj;
Rename(go.transform);
}
private static void Rename(Transform transform)
{
GameObject prefabGO = PrefabUtility.GetCorrespondingObjectFromSource(transform.gameObject);
//If prefab, rename, else search among children
if (prefabGO != null)
{
Debug.Log("Renaming " + transform.gameObject.name + " to " + prefabGO.name);
transform.gameObject.name = prefabGO.name;
}
else
{
for (int i = 0; i < transform.childCount; i++)
{
Rename(transform.GetChild(i));
}
}
}
}