public static bool IgnoreMember <T>(string memberName) { var infos = TypeUtility.GetMemberInfoList(typeof(T)); var removed = infos.RemoveAll(info => info.Name == memberName) > 0; return(removed); }
static void DoFields(object obj, Type type) { var infos = TypeUtility.GetMemberInfoList(type); for (var i = 0; i < infos.Count; ++i) { var info = infos[i]; if (CheckIgnoreField(info.Name)) { continue; } var v = info.GetValue(obj); var range = info.range; var memberType = info.MemberType; var elemName = CheckCustomLabel(info.Name) ?? info.label; if (range != null) { v = Slider(v, range.min, range.max, memberType, elemName); } else { // for the bug that short label will be strange word wrap at unity2019 tmpStringBuilder.Clear(); tmpStringBuilder.Append(elemName); tmpStringBuilder.Append(" "); v = Field(v, memberType, tmpStringBuilder.ToString()); } info.SetValue(obj, v); } ; }
static void DoMinMaxSlider(TupleObject to, object min, object max, Type type) { var infos = TypeUtility.GetMemberInfoList(type); for (var i = 0; i < infos.Count; ++i) { var info = infos[i]; if (CheckIgnoreField(info.Name)) { continue; } var elemValMin = info.GetValue(to.Item1); var elemValMax = info.GetValue(to.Item2); var elemMin = info.GetValue(min); var elemMax = info.GetValue(max); var elemLabel = CheckCustomLabel(info.Name) ?? info.label; var tuple = (TupleObject)MinMaxSlider((elemValMin, elemValMax), elemMin, elemMax, info.MemberType, elemLabel); info.SetValue(to.Item1, tuple.Item1); info.SetValue(to.Item2, tuple.Item2); } }
public static bool AddRange <T>(string memberName, MinMaxFloat range) { var infos = TypeUtility.GetMemberInfoList(typeof(T)); var info = infos.FirstOrDefault(fi => fi.Name == memberName); var hasMember = (info != null); if (hasMember) { info.range = range; } return(hasMember); }
static void DoSlider(object obj, object min, object max, Type type) { var infos = TypeUtility.GetMemberInfoList(type); for (var i = 0; i < infos.Count; ++i) { var fi = infos[i]; var elem = fi.GetValue(obj); var elemMin = fi.GetValue(min); var elemMax = fi.GetValue(max); var elemLabel = CheckCustomLabel(fi.Name); elem = Slider(elem, elemMin, elemMax, fi.MemberType, elemLabel); fi.SetValue(obj, elem); } }
public static bool Label <T>(string memberName, string label) { var infos = TypeUtility.GetMemberInfoList(typeof(T)); bool changed = false;; foreach (var info in infos) { if (info.Name == memberName) { info.label = label; changed = true; } } return(changed); }
static void DoMinMaxSlider(TupleObject to, object min, object max, Type type) { var infos = TypeUtility.GetMemberInfoList(type); for (var i = 0; i < infos.Count; ++i) { var fi = infos[i]; var elemValMin = fi.GetValue(to.Item1); var elemValMax = fi.GetValue(to.Item2); var elemMin = fi.GetValue(min); var elemMax = fi.GetValue(max); var elemLabel = CheckCustomLabel(fi.Name); var tuple = (TupleObject)MinMaxSlider((elemValMin, elemValMax), elemMin, elemMax, fi.MemberType, elemLabel); fi.SetValue(to.Item1, tuple.Item1); fi.SetValue(to.Item2, tuple.Item2); } }
static void DoSlider(object obj, object min, object max, Type type) { var infos = TypeUtility.GetMemberInfoList(type); for (var i = 0; i < infos.Count; ++i) { var info = infos[i]; if (CheckIgnoreField(info.Name)) { continue; } var elem = info.GetValue(obj); var elemMin = (min is float) ? min : info.GetValue(min); var elemMax = (max is float) ? max : info.GetValue(max); var elemLabel = CheckCustomLabel(info.Name) ?? info.label; elem = Slider(elem, elemMin, elemMax, info.MemberType, elemLabel); info.SetValue(obj, elem); } }