public static void DrawField(MemberField field, Color defaultColor) { EditorGUI.indentLevel = field.IndentLevel; if (field.Comment.Length > 0) { if (field.IsDefaultCommentColor) { GUI.color = defaultColor; } else { GUI.color = field.CommentColor; } EditorGUILayout.HelpBox(field.Comment, field.CommentMessageType); } if (field.IsDefaultColor) { GUI.color = defaultColor; } else { GUI.color = field.Color; } if (field is ArrayObjectReferenceField) { DrawArrayObjectReferenceField((ArrayObjectReferenceField)field, defaultColor); } else if (field is ArrayFieldField) { DrawArrayField((ArrayFieldField)field); } else if (field is ButtonGroupField) { DrawButtonGroup((ButtonGroupField)field); } else if (field is MethodField) { DrawMethodField((MethodField)field); } else if (field is ObjectReferenceField) { DrawObjectReferenceField((ObjectReferenceField)field, defaultColor); } else { DrawGenericField(field); } }
public static void DrawGenericField(MemberField field) { EditorGUILayout.BeginHorizontal(); if (field.IsReadOnly()) { System.Object v = field.GetValue(); if (v != null) { EditorGUILayout.LabelField(field.GetName(), field.GetValue().ToString()); } else { EditorGUILayout.LabelField(field.GetName(), "(null)"); } EditorGUILayout.EndHorizontal(); return; } field.SetValue(DrawFieldElement(field.Type, field.GetName(), field.GetValue(), field.GetFieldType(), field.ValueRange, field.Style)); EditorGUILayout.EndHorizontal(); }