public static DrawFunction GenerateFloat(MemberReference member, ShowInInspectorAttribute attribute)
 {
     if (member.HasValue && member.MemberInfo.HasCustomAttribute <ShowAsFloatSliderAttribute>())
     {
         var sliderAttribute = member.MemberInfo.GetCustomAttribute <ShowAsFloatSliderAttribute>();
         return((label, value, parameters) => EditorGUILayout.Slider(label, (float)value, sliderAttribute.Min, sliderAttribute.Max, parameters));
     }
     else
     {
         return(InternalPropertyDrawer.CreateDrawFunction <float>(EditorGUILayout.FloatField));
     }
 }
 public static DrawFunction GenerateInt(MemberReference member, ShowInInspectorAttribute attribute)
 {
     if (member.HasValue && member.MemberInfo.HasCustomAttribute <ShowAsIntSliderAttribute>())
     {
         var sliderAttribute = member.MemberInfo.GetCustomAttribute <ShowAsIntSliderAttribute>();
         return((label, value, parameters) => EditorGUILayout.IntSlider(label, (int)value, sliderAttribute.Min, sliderAttribute.Max, parameters));
     }
     else if (member.HasValue && Attribute.IsDefined(member.MemberInfo, typeof(ShowAsLayerAttribute)))
     {
         return(InternalPropertyDrawer.CreateDrawFunction <int>(EditorGUILayout.LayerField));
     }
     else
     {
         return(InternalPropertyDrawer.CreateDrawFunction <int>(EditorGUILayout.IntField));
     }
 }