void DrawToolBar() { if (GUI.Button(new Rect(0, 0, 50, 15), "Open")) { if (openfilepath == null) { openfilepath = EditorUtility.OpenFilePanel("Open Json", "", "json"); } else { string[] filename = openfilepath.Split('/'); StringBuilder dirc = new StringBuilder(); for (int i = 0; i < filename.Length - 1; ++i) { dirc.Append(filename[i]); } openfilepath = EditorUtility.OpenFilePanel("Open Json", dirc.ToString(), "json"); } StartToUIList(openfilepath); } if (GUI.Button(new Rect(50, 0, 50, 15), "Save")) { if (savefilepath == null) { savefilepath = EditorUtility.SaveFilePanel("Save Json", "", ".json", "json"); } else { string[] filename = savefilepath.Split('/'); StringBuilder dirc = new StringBuilder(); for (int i = 0; i < filename.Length - 1; ++i) { dirc.Append(filename[i]); } savefilepath = EditorUtility.SaveFilePanel("Save Json", dirc.ToString(), filename[filename.Length - 1], "json"); } OperateFile.CreateNewFile(savefilepath, Json.Serialize(this.serization)); } if (GUI.Button(new Rect(100, 0, 100, 15), "SerizeNewType")) { try { this.serization = SecondDeserialize(Activator.CreateInstance(Types[selectType])); UIElementPool.Recover(uielement); ReToUIList(this.serization); } catch (Exception e) { Debug.LogError("Class Type Error " + e); Debug.LogError(" 类型错误 " + e); } } typeName = EditorGUI.TextField(new Rect(200f, 0f, 300f, 15f), "TypeName", typeName); selectType = EditorGUI.Popup(new Rect(500f, 0f, 300f, 15f), " SelectType", selectType, TypesFullName.ToArray()); if (typeName == null || typeName == "") { return; } else if (lastSelectType != selectType) { typeName = TypesFullName[selectType]; lastSelectType = selectType; lastTypeName = typeName; return; } else if (lastTypeName != typeName) { this.Types = Reflection.RetType(typeName); TypesFullName.Clear(); for (int i = 0; i < Types.Count; ++i) { TypesFullName.Add(Types[i].FullName); } lastTypeName = typeName; } }