using UnityEngine; using UnityEditor; using System.Linq; using System.Collections.Generic; using System.Text; public class JsonGenerate : EditorWindow { [MenuItem("Tools/JsonGenerate Tool")] //在Unity菜单中添加一个名为“Rename Tool”的工具选项 public static void ShowWindow() { EditorWindow.GetWindow(typeof(JsonGenerate)); } string jsonText; void OnGUI() { GUILayout.Label("Object Renaming Tool", EditorStyles.boldLabel); //在编辑器窗口中显示标题 jsonText = EditorGUILayout.TextField("Json:", jsonText); //添加文本框,以便用户输入前缀 if (GUILayout.Button("Generate Json String")) { GenerateJsonString(); //添加一个按钮,以便用户单击以开始对选择的物体进行重命名 } } StringBuilder sbJson = new StringBuilder(); private void GenerateJsonString() { if (Selection.gameObjects.Length > 0) { //sbJson.Append("{\"target\": ["); var result = Selection.gameObjects.Where(obj=>obj.activeSelf).OrderBy(obj => obj.transform.GetSiblingIndex()).ToList(); for (int i = 0; i < result.Count; i++) { if (result[i].transform.childCount == 0) { sbJson.Append("{"); sbJson.AppendFormat("\"ObjectID\": \"{0}\",\"ImageName\": \"{0}.png\",\"Title\":\"\"", result[i].name); sbJson.Append("}"); } else { for (int j = 0; j < result[i].transform.childCount; j++) { sbJson.Append("{"); sbJson.AppendFormat("\"ObjectID\": \"{0}\",\"Type\": 8,\"Index\": {1},\"Title\":\"\",", result[i].transform.GetChild(j).name, j); if (j == 0) { string tmp = null; for (int k = 0; k < result[i].transform.childCount; k++) { tmp += string.Format("\"{0}.png\"", result[i].transform.GetChild(k).name); if (k != result[i].transform.childCount - 1) { tmp += ","; } } sbJson.AppendFormat("\"DataDetails\":[{0}]", tmp); } else { sbJson.AppendFormat("\"ParentID\":\"{0}\"", result[i].transform.GetChild(0).name); } sbJson.Append("}"); if (j != result[i].transform.childCount - 1) { sbJson.Append(","); } } } if (i != result.Count - 1) { sbJson.Append(","); } } //sbJson.Append("]}"); jsonText = sbJson.ToString(); } } }