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 dicNodes = new Dictionary(); private void GeneratePrefab() { dicNodes = JsonTools.DicFromJson(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; } } } } }