static public bool PropertyField(FieldInfo p_fieldInfo, Object p_object, IReferencable p_reference, FieldInfo p_parentInfo = null) //string p_name = null, bool p_drawLabel = true) { if (IsHidden(p_fieldInfo)) { return(false); } if (!MeetsDependencies(p_fieldInfo, p_object)) { return(false); } FieldInfo nameInfo = p_parentInfo != null ? p_parentInfo : p_fieldInfo; LabelAttribute labelAttribute = nameInfo.GetCustomAttribute <LabelAttribute>(); string nameString = ObjectNames.NicifyVariableName(nameInfo.Name); nameString = labelAttribute == null ? nameString.Substring(0, 1).ToUpper() + nameString.Substring(1) : labelAttribute.Label; TooltipAttribute tooltipAttribute = nameInfo.GetCustomAttribute <TooltipAttribute>(); var name = tooltipAttribute == null ? new GUIContent(nameString) : new GUIContent(nameString, tooltipAttribute.tooltip); if (IsParameterProperty(p_fieldInfo)) { return(ParameterProperty(p_fieldInfo, p_object, name, p_reference)); } if (p_parentInfo == null && IsExpressionProperty(p_fieldInfo)) { return(ExpressionProperty(p_fieldInfo, p_object, name, p_reference)); } if (IsPopupProperty(p_fieldInfo)) { return(PopupProperty(p_fieldInfo, p_object, name)); } if (p_fieldInfo.FieldType == typeof(Type)) { return(SupportedTypeProperty(p_fieldInfo, p_object, name)); } if (IsEnumProperty(p_fieldInfo)) { return(EnumProperty(p_fieldInfo, p_object, name)); } if (IsUnityObjectProperty(p_fieldInfo)) { return(UnityObjectProperty(p_fieldInfo, p_object, name)); } if (IsExposedReferenceProperty(p_fieldInfo)) { return(ExposedReferenceProperty(p_fieldInfo, p_object, name, p_reference)); } return(ValueProperty(p_fieldInfo, p_object, name, p_reference, p_parentInfo)); }