示例#1
0
        private static VariableValue DrawFloat(Rect rect, VariableValue value, FloatVariableConstraint constraint)
        {
            var number = value.Float;

            if (constraint != null)
            {
                number = EditorGUI.Slider(rect, GUIContent.none, number, constraint.Minimum, constraint.Maximum);
            }
            else
            {
                number = EditorGUI.FloatField(rect, GUIContent.none, number);
            }

            return(VariableValue.Create(number));
        }
示例#2
0
        private static void DrawNumberConstraint(Rect rect, VariableType type, ref VariableConstraint constraint)
        {
            var fromLabel = _minimumConstraintLabel;
            var toLabel   = _maximumConstraintLabel;

            var fromSize = EditorStyles.label.CalcSize(fromLabel);
            var toSize   = EditorStyles.label.CalcSize(toLabel);
            var spacing  = 5.0f;

            var inputWidth = (rect.width - rect.height - fromSize.x - toSize.x - spacing * 4) * 0.5f;

            var checkboxRect = RectHelper.TakeWidth(ref rect, rect.height);

            RectHelper.TakeWidth(ref rect, spacing);
            var fromRect = RectHelper.TakeWidth(ref rect, fromSize.x);

            RectHelper.TakeWidth(ref rect, spacing);
            var minimumRect = RectHelper.TakeWidth(ref rect, inputWidth);

            RectHelper.TakeWidth(ref rect, spacing);
            var toRect = RectHelper.TakeWidth(ref rect, toSize.x);

            RectHelper.TakeWidth(ref rect, spacing);
            var maximumRect = RectHelper.TakeWidth(ref rect, inputWidth);

            var useRangeConstraint = GUI.Toggle(checkboxRect, constraint != null, _useRangeConstraintLabel);

            if (!useRangeConstraint)
            {
                constraint = null;
            }
            else if (type == VariableType.Int)
            {
                if (!(constraint is IntVariableConstraint intConstraint))
                {
                    intConstraint = new IntVariableConstraint {
                        Minimum = 0, Maximum = 100
                    };
                    constraint = intConstraint;
                }

                GUI.Label(fromRect, fromLabel);
                intConstraint.Minimum = EditorGUI.IntField(minimumRect, intConstraint.Minimum);
                GUI.Label(toRect, toLabel);
                intConstraint.Maximum = EditorGUI.IntField(maximumRect, intConstraint.Maximum);
            }
            else if (type == VariableType.Float)
            {
                if (!(constraint is FloatVariableConstraint floatConstraint))
                {
                    floatConstraint = new FloatVariableConstraint {
                        Minimum = 0, Maximum = 100
                    };
                    constraint = floatConstraint;
                }

                GUI.Label(fromRect, fromLabel);
                floatConstraint.Minimum = EditorGUI.FloatField(minimumRect, floatConstraint.Minimum);
                GUI.Label(toRect, toLabel);
                floatConstraint.Maximum = EditorGUI.FloatField(maximumRect, floatConstraint.Maximum);
            }
        }