Exemple #1
0
        public static bool IgnoreMember <T>(string memberName)
        {
            var infos   = TypeUtility.GetMemberInfoList(typeof(T));
            var removed = infos.RemoveAll(info => info.Name == memberName) > 0;

            return(removed);
        }
Exemple #2
0
        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);
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #8
0
        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);
            }
        }