91 lines
3.1 KiB
C#
91 lines
3.1 KiB
C#
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();
|
|
}
|
|
}
|
|
} |