Files
TaiWan/Assets/Roaming/Editor/PrefabReset.cs
2025-10-31 15:20:38 +08:00

52 lines
1.5 KiB
C#

using UnityEngine;
using UnityEditor;
using System.Linq;
using System.Collections.Generic;
using System.Text;
public class PrefabReset : EditorWindow
{
[MenuItem("Tools/PrefabReset Tool")]
public static void ShowWindow()
{
EditorWindow.GetWindow(typeof(PrefabReset));
}
string jsonText;
void OnGUI()
{
GUILayout.Label("Generate Prefab Tool", EditorStyles.boldLabel); //在编辑器窗口中显示标题
jsonText = EditorGUILayout.TextField("Json:", jsonText); //添加文本框,以便用户输入前缀
if (GUILayout.Button("Generate Prefab String"))
{
GeneratePrefab(); //添加一个按钮,以便用户单击以开始对选择的物体进行重命名
}
}
Dictionary<string, string> dicNodes = new Dictionary<string, string>();
private void GeneratePrefab()
{
dicNodes = JsonTools.DicFromJson<string, string>(jsonText);
foreach (string key in dicNodes.Keys)
{
GameObject obj = GameObject.Find(key);
if (obj == null)
{
obj = Instantiate(new GameObject());
obj.name = key;
obj.transform.parent = GameObject.Find(key.Substring(0, 2)).transform;
}
string[] subobjs = dicNodes[key].Split('|');
foreach (string keysub in subobjs)
{
GameObject tmp = GameObject.Find(keysub);
if(tmp != null)
{
tmp.transform.parent = obj.transform;
}
}
}
}
}