private void whenImport() { int row = 1, col = 1; int length = GetInt(row++, col); paramlist.Clear(); for (int i = 0; i < length; i++) { FixClassCircle.ParamMore paramData = new FixClassCircle.ParamMore(); paramData.desc = GetString(row, col++); int leng = GetInt(row, col++); for (int j = 0; j < leng; j++) { FixClassCircle.UseParam useParam = new FixClassCircle.UseParam(); useParam.NameCh = GetString(row, col++); useParam.NameEng = GetString(row, col++); useParam.type = (FixClassCircle.ParamType)GetInt(row, col++); useParam.EnumDesc = GetString(row, col++); paramData.Detail.Add(useParam); } paramlist.Add(paramData); row++; col = 1; } length = GetInt(row++, col); serializedNodes.Clear(); for (int i = 0; i < length; i++) { FixClassCircle.SerializableNode seriNode = new FixClassCircle.SerializableNode(); seriNode.tagCh = GetString(row, col++); seriNode.tag = GetString(row, col++); seriNode.paramIndex = GetInt(row, col++); int leng = GetInt(row, col++); for (int j = 0; j < leng; j++) { seriNode.otherParamValues.Add(GetString(row, col++)); } seriNode.childCount = GetInt(row, col++); seriNode.indexOfFirstChild = GetInt(row, col++); serializedNodes.Add(seriNode); row++; col = 1; } OnAfterDeserialize(); }
void DrawParamList() { if (_target == null) { return; } EditorGUILayout.BeginHorizontal(); ParamListFoldOut = EditorGUILayout.Foldout(ParamListFoldOut, "Struct List" + (_target.ShowSize ? (" / size:" + _target.paramlist.Count) : "")); if (ParamListEditMode) { if (GUILayout.Button(forbutton6_2, EditorStyles.toolbarButton, GUILayout.Width(20))) { ParamListEditMode = false; } } else { if (GUILayout.Button(forbutton6, GUILayout.Width(20))) { ParamListEditMode = true; } } if (GUILayout.Button(forbutton1, GUILayout.Width(20))) { _target.paramlist.Add(new FixClassCircle.ParamMore()); ParamListFoldOut = true; } EditorGUILayout.EndHorizontal(); if (ParamListEditMode) { EditorGUILayout.BeginHorizontal(); GUI.color = color_Edit; GUILayout.Space(indentation); ParamListSize = EditorGUILayout.IntField("size:", ParamListSize); if (GUILayout.Button("SetSize")) { if (ParamListSize < 1) { ParamListSize = 1; } if (ParamListSize < _target.paramlist.Count) { _target.paramlist.RemoveRange(ParamListSize, _target.paramlist.Count - ParamListSize); } else if (ParamListSize > _target.paramlist.Count) { for (int tempi = _target.paramlist.Count; tempi < ParamListSize; tempi++) { _target.paramlist.Add(new FixClassCircle.ParamMore()); } } } GUI.color = color_normal; EditorGUILayout.EndHorizontal(); } if (!ParamListFoldOut) { return; } for (int i = 0; i < _target.paramlist.Count; i++) { FixClassCircle.ParamMore paramnode = _target.paramlist[i]; EditorGUILayout.BeginHorizontal(); GUILayout.Space(indentation); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); fixFoldoutPos(paramnode.foldout); paramnode.foldout = EditorGUILayout.Foldout(paramnode.foldout, i + "-" + paramnode.desc + (_target.ShowSize ? (" / size:" + paramnode.Detail.Count) : "")); if (paramnode.EditMode) { if (GUILayout.Button(forbutton6_2, EditorStyles.toolbarButton, GUILayout.Width(20))) { paramnode.EditMode = false; } } else { if (GUILayout.Button(forbutton6, GUILayout.Width(20))) { paramnode.EditMode = true; } } if (GUILayout.Button(forbutton1, GUILayout.Width(20))) { string defaultName = "Member_" + (paramnode.Detail.Count + 1); paramnode.Detail.Add(new FixClassCircle.UseParam() { NameCh = defaultName, NameEng = defaultName }); paramnode.foldout = true; } if (GUILayout.Button(forbutton3, GUILayout.Width(20))) { _target.paramlist.Remove(paramnode); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); return; } EditorGUILayout.EndHorizontal(); if (paramnode.EditMode) { EditorGUILayout.BeginHorizontal(); GUI.color = color_Edit; GUILayout.Space(indentation); paramnode.desc = EditorGUILayout.TextField("Desc", paramnode.desc); GUI.color = color_normal; EditorGUILayout.EndHorizontal(); } if (paramnode.foldout) { for (int j = 0; j < paramnode.Detail.Count; j++) { FixClassCircle.UseParam useParam = paramnode.Detail[j]; EditorGUILayout.BeginHorizontal(); GUILayout.Space(indentation); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); fixFoldoutPos(useParam.foldout); useParam.foldout = EditorGUILayout.Foldout(useParam.foldout, useParam.NameCh); if (GUILayout.Button(forbutton5, GUILayout.Width(22))) { FixClassCircle.UseParam newUse = new FixClassCircle.UseParam(); newUse.NameCh = useParam.NameCh; newUse.NameEng = useParam.NameEng; newUse.type = useParam.type; newUse.EnumDesc = useParam.EnumDesc; paramnode.Detail.Insert(j, newUse); resync(i, j, 0); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); break; } if (GUILayout.Button(forbutton3, GUILayout.Width(20))) { paramnode.Detail.Remove(useParam); resync(i, j, 1); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); break; } EditorGUILayout.EndHorizontal(); if (useParam.foldout) { EditorGUILayout.BeginHorizontal(); GUILayout.Space(indentation + 13); EditorGUILayout.BeginVertical(); useParam.NameCh = EditorGUILayout.TextField("Name Ch", useParam.NameCh); useParam.NameEng = EditorGUILayout.TextField("Name Eng", useParam.NameEng); useParam.type = (FixClassCircle.ParamType)EditorGUILayout.EnumPopup("Type", useParam.type); if (useParam.type == FixClassCircle.ParamType.IntEnum || useParam.type == FixClassCircle.ParamType.IntEnumMap) { useParam.EnumDesc = EditorGUILayout.TextField("Enum Desc", useParam.EnumDesc); } else if (!string.IsNullOrEmpty(useParam.EnumDesc)) { useParam.EnumDesc = ""; } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } }