From ce4d9f0f9ff06d886ad2330f99e12e96244258fa Mon Sep 17 00:00:00 2001 From: ousttrue Date: Mon, 20 Jul 2020 15:23:50 +0900 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E3=81=AE=20ExportJs?= =?UTF-8?q?onSchema=20=E3=82=92=E5=89=8A=E9=99=A4=20#473?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UniVRM/Editor/Format/VRMVersionMenu.cs | 114 +----------------- 1 file changed, 1 insertion(+), 113 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Format/VRMVersionMenu.cs b/Assets/VRM/UniVRM/Editor/Format/VRMVersionMenu.cs index f8aa3d059..386c9d414 100644 --- a/Assets/VRM/UniVRM/Editor/Format/VRMVersionMenu.cs +++ b/Assets/VRM/UniVRM/Editor/Format/VRMVersionMenu.cs @@ -1,9 +1,5 @@ -using System; -using System.IO; -using UniGLTF; -using UniJSON; +using System.IO; using UnityEditor; -using UnityEngine; namespace VRM @@ -59,113 +55,5 @@ namespace VRM File.WriteAllText(path, source); AssetDatabase.Refresh(); } - - static string GetTitle(ListTreeNode node) - { - try - { - var titleNode = node["title"]; - if (titleNode.IsString()) - { - return titleNode.GetString(); - } - } - catch(Exception) - { - } - return ""; - } - - static void TraverseItem(ListTreeNode node, JsonFormatter f, UnityPath dir) - { - var title = GetTitle(node); - if (string.IsNullOrEmpty(title)) - { - Traverse(node, f, dir); - } - else - { - // ref - f.BeginMap(); - f.Key("$ref"); - var fileName = string.Format("{0}.schema.json", title); - f.Value(fileName); - f.EndMap(); - - // new formatter - { - var subFormatter = new JsonFormatter(4); - - subFormatter.BeginMap(); - foreach (var _kv in node.ObjectItems()) - { - subFormatter.Key(_kv.Key.GetUtf8String()); - Traverse(_kv.Value, subFormatter, dir); - } - subFormatter.EndMap(); - - var subJson = subFormatter.ToString(); - var path = dir.Child(fileName); - File.WriteAllText(path.FullPath, subJson); - } - } - } - - static void Traverse(ListTreeNode node, JsonFormatter f, UnityPath dir) - { - if (node.IsArray()) - { - f.BeginList(); - foreach (var x in node.ArrayItems()) - { - TraverseItem(x, f, dir); - } - f.EndList(); - } - else if (node.IsMap()) - { - f.BeginMap(); - foreach (var kv in node.ObjectItems()) - { - f.Key(kv.Key.GetUtf8String()); - TraverseItem(kv.Value, f, dir); - } - f.EndMap(); - } - else - { - f.Value(node); - } - } - - static UnityPath SplitAndWriteJson(ListTreeNode parsed, UnityPath dir) - { - var f = new JsonFormatter(4); - Traverse(parsed, f, dir); - var json = f.ToString(); - - var path = dir.Child("vrm.schema.json"); - Debug.LogFormat("write JsonSchema: {0}", path.FullPath); - File.WriteAllText(path.FullPath, json); - return path; - } - -#if VRM_DEVELOP - [MenuItem(VRMVersion.MENU + "/Export JsonSchema")] -#endif - static void ExportJsonSchema() - { - var schema = JsonSchema.FromType(); - var f = new JsonFormatter(2); - schema.ToJson(f); - var json = f.ToString(); - - var dir = UnityPath.FromFullpath(Application.dataPath + "/VRM/specification/0.0/schema"); - dir.EnsureFolder(); - - var path = SplitAndWriteJson(JsonParser.Parse(json), dir); - - Selection.activeObject = AssetDatabase.LoadAssetAtPath(path.Value); - } } }