Files
TaiWan/Assets/Roaming/Editor/JsonGenerate.cs

91 lines
3.1 KiB
C#
Raw Normal View History

2025-10-31 15:20:38 +08:00
using UnityEngine;
using UnityEditor;
using System.Linq;
using System.Collections.Generic;
using System.Text;
public class JsonGenerate : EditorWindow
{
[MenuItem("Tools/JsonGenerate Tool")] //<2F><>Unity<74>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Rename Tool<6F><6C><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ѡ<EFBFBD><D1A1>
public static void ShowWindow()
{
EditorWindow.GetWindow(typeof(JsonGenerate));
}
string jsonText;
void OnGUI()
{
GUILayout.Label("Object Renaming Tool", EditorStyles.boldLabel); //<2F>ڱ༭<DAB1><E0BCAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
jsonText = EditorGUILayout.TextField("Json:", jsonText); //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ǰ׺
if (GUILayout.Button("Generate Json String"))
{
GenerateJsonString(); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ť<EFBFBD><C5A5><EFBFBD>Ա<EFBFBD><D4B1>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD>ʼ<EFBFBD><CABC>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
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();
}
}
}