public static void GUI(EditorObject info) { EditorGUI.indentLevel = info.level; if (info.editorList != null) { EditorList.GUI(info.editorList); } else if (info.editorArray != null) { EditorArray.GUI(info.editorArray); } else if (info.editorClass != null) { EditorClass.GUI(info.editorClass); } else { object value = info.objectData.GetValue(); bool isChange = false; InputTool.Input(info.objectData.type, info.name, ref value, ref isChange); if (isChange) { info.objectData.SetValue(value); } } }
public static void GUI(EditorList info) { EditorGUI.indentLevel = info.level; info.isFold = EditorGUILayout.Foldout(info.isFold, info.arrayData.name); if (info.isFold == false) { return; } bool isChange = false; int size = info.arrayData.Count; InputTool.InputInt("Size", ref size, ref isChange); if (isChange) { info.arrayData.SetCount(size); } info.RefreshValue(); for (int i = 0; i < size; i++) { EditorObject.GUI(info.editorElements[i]); } }
void RefreshValue() { if (objectData.listData != null) { if (editorList == null) { editorList = new EditorList(objectData.listData, level + 1); } else { editorList.RefreshValue(objectData.listData); } } else if (objectData.arrayData != null) { if (editorArray == null) { editorArray = new EditorArray(objectData.arrayData, level + 1); } else { editorArray.RefreshValue(objectData.arrayData); } } else if (objectData.classData != null) { if (editorClass == null) { editorClass = new EditorClass(objectData.classData, level + 1, false, name); editorClass.GetEditorField(); } else { editorClass.RefreshValue(objectData.classData); } } }