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")] //<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();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|