Beispiel #1
0
            public EditorFloatSliderField(string label, float value, float min, float max, EventCallback <ChangeEvent <float> > callback)
            {
                slider       = new Slider(label, min, max, SliderDirection.Horizontal);
                slider.name  = nameof(slider);
                slider.value = value;
                labelElement.StylePadding(0, 8, 0, 0);
                Add(slider);

                floatField      = new FloatField();
                floatField.name = nameof(floatField);
                floatField.StyleWidth(64);
                floatField.style.paddingLeft = 4;
                floatField.style.marginRight = 0;
                floatField.value             = value;
                floatField.RegisterValueChangedCallback(callback);
                floatField.RegisterValueChangedCallback((callbackChangedSlider) =>
                {
                    slider.value = callbackChangedSlider.newValue;
                });
                slider.Add(floatField);

                slider.RegisterValueChangedCallback((callbackSlide) =>
                {
                    floatField.value = callbackSlide.newValue;
                });
            }
Beispiel #2
0
        // -----------------------------------------------------------------------------------------

        public void Generate_Broadcaster_Vertical_Spacing_Field()
        {
            var floatProp = new FloatProperty();

            floatProp.PropertyName  = _TranzmitGraphView.VerticalYSpacing_Broadcaster.PropertyName;
            floatProp.PropertyValue = _TranzmitGraphView.VerticalYSpacing_Broadcaster.PropertyValue;

            var visualElement   = new VisualElement();
            var blackboardField = new BlackboardField {
                text = floatProp.PropertyName, typeText = ""
            };

            visualElement.Add(blackboardField);

            var field = new FloatField("Value:");

            field.value = floatProp.PropertyValue;

            field.RegisterValueChangedCallback(ChangeEvent =>
            {
                _TranzmitGraphView.VerticalYSpacing_Broadcaster.PropertyValue = field.value;

                if (_TranzmitGraphView.CurrentArrangementType == Tranzmit_Graph_View.ArrangementTypes.Vertical)
                {
                    _TranzmitGraphView.Arrange_Broadcaster_Results(Tranzmit_Graph_View.ArrangementTypes.Vertical);
                }
            });

            var blackBoardValueRow = new BlackboardRow(blackboardField, field);

            visualElement.Add(blackBoardValueRow);

            _TranzmitGraphView.Blackboard.Add(visualElement);
        }
        public override void Enable()
        {
            base.Enable();

            var node = nodeTarget as RandomRangeNode;

            var min = new FloatField("Min")
            {
                value = node.min
            };

            min.RegisterValueChangedCallback(e =>
            {
                owner.RegisterCompleteObjectUndo("Updated Min " + e.newValue);
                node.min = e.newValue;
                NotifyNodeChanged();
            });

            var max = new FloatField("Max")
            {
                value = node.max
            };

            max.RegisterValueChangedCallback(e =>
            {
                owner.RegisterCompleteObjectUndo("Updated Max " + e.newValue);
                node.max = e.newValue;
                NotifyNodeChanged();
            });


            controlsContainer.Add(min);
            controlsContainer.Add(max);
        }
Beispiel #4
0
        void AddRealtimeFields(MixtureNode node, MixtureGraphView owner)
        {
            doubleBuffered = new Toggle("Double Buffered")
            {
                value = node.rtSettings.doubleBuffered,
            };
            doubleBuffered.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Set Double Buffered " + e.newValue);
                node.rtSettings.doubleBuffered = e.newValue;
                onChanged?.Invoke();
            });

            Add(doubleBuffered);

            refreshMode = new EnumField("Refresh Mode", node.rtSettings.refreshMode);
            refreshMode.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Set Refresh Mode " + e.newValue);
                node.rtSettings.refreshMode = (RefreshMode)e.newValue;
                onChanged?.Invoke();
            });

            Add(refreshMode);

            period = new FloatField("Period")
            {
                value = node.rtSettings.period
            };
            period.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Set Period " + e.newValue);
                node.rtSettings.period = e.newValue;
                onChanged?.Invoke();
            });

            Add(period);
        }
Beispiel #5
0
        internal VisualElement CreateGUI(
            ValueChangedCallback valueChangedCallback,
            float fieldToDraw,
            string labelName,
            out VisualElement propertyFloatField,
            int indentLevel = 0)
        {
            var floatField = new FloatField {
                label = "X", value = fieldToDraw
            };

            floatField.labelElement.style.minWidth = 15;

            if (valueChangedCallback != null)
            {
                floatField.RegisterValueChangedCallback(evt => { valueChangedCallback((float)evt.newValue); });
            }

            propertyFloatField = floatField;

            var defaultRow = new PropertyRow(PropertyDrawerUtils.CreateLabel(labelName, indentLevel));

            defaultRow.Add(propertyFloatField);
            defaultRow.styleSheets.Add(Resources.Load <StyleSheet>("Styles/PropertyRow"));
            return(defaultRow);
        }
Beispiel #6
0
 public FloatSlider() : base()
 {
     slider.RegisterValueChangedCallback(evt => { field.value = value = evt.newValue; });
     slider.style.minWidth = 50;
     field.RegisterValueChangedCallback(evt => { slider.value = value = evt.newValue; });
     field.style.minWidth = 80;
 }
Beispiel #7
0
        VisualElement CreateLightExposureContent()
        {
            var exposure = SceneView.s_DrawModeExposure;

            var root = new VisualElement();

            root.AddToClassList(k_SliderRowClass);

            var icon = new Image()
            {
                name = "exposure-label"
            };

            m_ExposureSlider = new Slider(-m_ExposureMax, m_ExposureMax)
            {
                name = "exposure-slider"
            };
            m_ExposureSlider.AddToClassList(k_SliderClass);
            m_ExposureSlider.RegisterValueChangedCallback(SetBakedExposure);
            m_ExposureSlider.SetValueWithoutNotify(exposure);

            m_ExposureField = new FloatField()
            {
                name = "exposure-float-field"
            };
            m_ExposureField.AddToClassList(k_SliderFloatFieldClass);
            m_ExposureField.RegisterValueChangedCallback(SetBakedExposure);
            m_ExposureField.SetValueWithoutNotify(exposure);

            root.Add(icon);
            root.Add(m_ExposureSlider);
            root.Add(m_ExposureField);
            return(root);
        }
    public void CreateGUI()
    {
        VisualElement root = rootVisualElement;

        var           visualTree    = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/EasePreview.uxml");
        VisualElement labelFromUXML = visualTree.Instantiate();

        labelFromUXML.style.flexGrow = 1;
        root.Add(labelFromUXML);
        var styleSheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Editor/EasePreview.uss");

        root.styleSheets.Add(styleSheet);

        var selector = root.Q <EnumField>("selector");

        selector.Init(_easeType);
        selector.RegisterValueChangedCallback(SelectorValueChanged);

        _drawPanel = root.Q <VisualElement>("drawPanel");
        _drawPanel.generateVisualContent = DrawEaseFunction;

        _overField = root.Q <FloatField>("overshootOrAmplitude");
        _overField.RegisterValueChangedCallback(ParaChangedOvershootOrAmplitude);
        _overField.visible = false;
        _periodField       = root.Q <FloatField>("period");
        _periodField.RegisterValueChangedCallback(ParaChangedPeriod);
        _periodField.visible = false;

        root.Bind(new SerializedObject(this));
    }
Beispiel #9
0
        public CreateVector2Node()
        {
            Initialize("Create Vector2", DefaultNodePosition);
            var inputField = new FloatField {
                label = "x:", value = 0
            };

            inputField.labelElement.style.minWidth = 0;
            inputField.name = "xInput";
            inputField.RegisterValueChangedCallback(evt => {
                CodeGraph.Instance.InvalidateSaveButton();
                x = evt.newValue;
            });
            inputContainer.Add(inputField);

            var inputField2 = new FloatField {
                label = "y:", value = 0
            };

            inputField2.labelElement.style.minWidth = 0;
            inputField2.name = "yInput";
            inputField2.RegisterValueChangedCallback(evt => {
                CodeGraph.Instance.InvalidateSaveButton();
                y = evt.newValue;
            });
            inputContainer.Add(inputField2);

            var valuePort = base.InstantiatePort(Orientation.Horizontal, Direction.Output, Port.Capacity.Multi, typeof(float));

            valuePort.portName = "value (2)";
            AddOutputPort(valuePort, () => $"new Vector2({x}f,{y}f)");
            Refresh();
        }
Beispiel #10
0
        VisualElement CreateSliderWithField(GUIContent label, float value, float min, float max, EventCallback <ChangeEvent <float> > callback)
        {
            var root = new VisualElement()
            {
                name = "Slider Float Field"
            };

            root.AddToClassList(k_SliderRowClass);

            var slider = new Slider(min, max);

            slider.AddToClassList(k_SliderClass);
            slider.RegisterValueChangedCallback(callback);
            slider.SetValueWithoutNotify(value);

            if (label != null && !string.IsNullOrEmpty(label.text))
            {
                slider.label   = label.text;
                slider.tooltip = label.tooltip;
            }

            var field = new FloatField();

            field.AddToClassList(k_SliderFloatFieldClass);
            field.RegisterValueChangedCallback(callback);
            field.SetValueWithoutNotify(value);

            root.Add(slider);
            root.Add(field);

            return(root);
        }
        void LoadTemplate()
        {
            AddToClassList("timeField");
            m_FieldName = new Label();
            m_FieldName.AddToClassList("timeFieldNameLabel");
            Add(m_FieldName);
            var inputContainer = new VisualElement();

            inputContainer.AddToClassList("timeFieldInputContainer");
            Add(inputContainer);

            m_SecondsField = new FloatField("Seconds");
            m_SecondsField.AddToClassList("timeInput");
            m_SecondsField.RegisterValueChangedCallback(OnTimeInSecondsChanged);
            inputContainer.Add(m_SecondsField);

            m_FrameField = new IntegerField("Frame");
            m_FrameField.AddToClassList("timeInput");
            m_FrameField.RegisterValueChangedCallback(OnFrameChanged);
            inputContainer.Add(m_FrameField);

            SyncToViewModeSetting();

            RegisterCallback <AttachToPanelEvent>(OnAttachToPanel);
            RegisterCallback <DetachFromPanelEvent>(OnDetachFromPanel);
        }
Beispiel #12
0
        public override VisualElement Build()
        {
            base.Build();
            var range     = DrawerAttribute;
            var lowValue  = Mathf.Max(range.min, LowValue);
            var highValue = Mathf.Min(range.max, HighValue);

            m_Field.lowValue  = TypeConversion.Convert <float, TFieldType>(ref lowValue);
            m_Field.highValue = TypeConversion.Convert <float, TFieldType>(ref highValue);

            var root = new VisualElement();

            root.Add(m_Field);
            m_Field.style.flexGrow = 1;
            m_ValueField           = new FloatField
            {
                name    = Name,
                label   = null,
                tooltip = Tooltip,
            };
            m_ValueField.formatString = "0.##";
            m_ValueField.RegisterValueChangedCallback(OnChanged);
            m_ValueField.style.flexGrow = 0;
            m_ValueField.style.width    = 50;
            root.Add(m_ValueField);
            root.style.flexDirection = FlexDirection.Row;
            return(root);
        }
        void AddField(Vector4 initialValue, int index, string subLabel)
        {
            var dummy = new VisualElement {
                name = "dummy"
            };
            var label = new Label(subLabel);

            dummy.Add(label);
            Add(dummy);
            var field = new FloatField {
                userData = index, value = initialValue[index]
            };
            var dragger = new FieldMouseDragger <double>(field);

            dragger.SetDragZone(label);
            field.Q("unity-text-input").RegisterCallback <KeyDownEvent>(evt =>
            {
                // Record Undo for input field edit
                if (m_UndoGroup == -1)
                {
                    m_UndoGroup = Undo.GetCurrentGroup();
                    m_Node.owner.owner.RegisterCompleteObjectUndo("Change " + m_Node.name);
                }
                // Handle scaping input field edit
                if (evt.keyCode == KeyCode.Escape && m_UndoGroup > -1)
                {
                    Undo.RevertAllDownToGroup(m_UndoGroup);
                    m_UndoGroup = -1;
                    evt.StopPropagation();
                }
                // Dont record Undo again until input field is unfocused
                m_UndoGroup++;
                this.MarkDirtyRepaint();
            });
            // Called after KeyDownEvent
            field.RegisterValueChangedCallback(evt =>
            {
                // Only true when setting value via FieldMouseDragger
                // Undo recorded once per dragger release
                if (m_UndoGroup == -1)
                {
                    m_Node.owner.owner.RegisterCompleteObjectUndo("Change " + m_Node.name);
                }
                var value = m_Get();
                if (value[index] != (float)evt.newValue)
                {
                    value[index] = (float)evt.newValue;
                    m_Set(value);
                    m_Node.Dirty(ModificationScope.Node);
                }
            });
            // Reset UndoGroup when done editing input field & update title
            field.Q("unity-text-input").RegisterCallback <FocusOutEvent>(evt =>
            {
                m_Node.owner.owner.isDirty = true;
                m_UndoGroup = -1;
            });
            Add(field);
        }
        static void CreateField <T>(string label, IConstantEditorBuilder builder, VisualElement container, T oldValue, float fieldValue, Func <ChangeEvent <float>, T> generateValue)
        {
            var field = new FloatField(label);

            field.value = fieldValue;
            container.Add(field);
            field.RegisterValueChangedCallback(evt => Dispatch(builder, oldValue, generateValue(evt)));
        }
        public static void SetFloatFieldRange(this FloatField field, float min = float.MinValue, float max = float.MaxValue)
        {
            k_FloatFieldRanges[field] = new Tuple <float, float>(min, max);
            field.RegisterValueChangedCallback(OnFloatFieldValueChanged);
            field.RegisterCallback <DetachFromPanelEvent>(OnFloatFieldDetachedFromPanel);

            ClampFloatFieldValue(field.value, field);
        }
Beispiel #16
0
    public void SetData(WidgetDataLaunchCommandElement data)
    {
        _widgetData = data;

        _nameLabel.text     = data.GameConsoleInvokable.DisplayName;
        _activeToggle.value = data.Active;
        _paramsContainer.Clear();

        int paramIndex = 0;

        foreach (IGameConsoleParameter param in data.GameConsoleInvokable.Parameters)
        {
            if (param.Type == typeof(bool))
            {
                var field = new Toggle();
                bool.TryParse(TryPopParam(), out bool val);
                field.value = val;
                field.RegisterValueChangedCallback((evt) => OnParameterModified());
                _paramsContainer.Add(field);
            }
            else if (param.Type == typeof(int))
            {
                var field = new IntegerField();
                int.TryParse(TryPopParam(), out int val);
                field.value = val;
                field.RegisterValueChangedCallback((evt) => OnParameterModified());
                _paramsContainer.Add(field);
            }
            else if (param.Type == typeof(float))
            {
                var field = new FloatField();
                float.TryParse(TryPopParam(), out float val);
                field.value = val;
                field.RegisterValueChangedCallback((evt) => OnParameterModified());
                _paramsContainer.Add(field);
            }
            else
            {
                var field = new TextField();
                field.value = TryPopParam();
                field.RegisterValueChangedCallback((evt) => OnParameterModified());
                _paramsContainer.Add(field);
            }
        }

        _nameLabel.SetEnabled(data.Active);
        foreach (var item in _paramsContainer.Children())
        {
            item.SetEnabled(data.Active);
        }

        OnParameterModified();

        string TryPopParam()
        {
            if (data.Parameters == null)
            {
                return(default);
Beispiel #17
0
        public static VisualElement GetElementOfFloatField(float startValue, string fieldName, Action <object> setValue, Action <object> getValue)
        {
            FloatField field = new FloatField(fieldName);

            field.SetValueWithoutNotify(startValue);
            field.RegisterValueChangedCallback(s => setValue.Invoke(s.newValue));
            getValue += o => field.SetValueWithoutNotify((float)o);
            return(field);
        }
        public static void RenderFloatProperty(VisualElement container, string name, object value,
                                               Action <object> setter)
        {
            var field = new FloatField(name);

            field.SetValueWithoutNotify((float)value);
            field.MarkDirtyRepaint();
            field.RegisterValueChangedCallback(evt => setter(evt.newValue));
            container.Add(field);
        }
Beispiel #19
0
        void AddField(int index, string subLabel)
        {
            var dummy = new VisualElement {
                name = "dummy"
            };
            var label = new Label(subLabel);

            dummy.Add(label);
            Add(dummy);
            var field = new FloatField {
                userData = index, value = m_Value[index]
            };

//            var dragger = new FieldMouseDragger<float>(field);
//            dragger.SetDragZone(label);
            field.RegisterCallback <MouseDownEvent>(Repaint);
            field.RegisterCallback <MouseMoveEvent>(Repaint);
            field.RegisterValueChangedCallback(evt =>
            {
                var value    = GetValue();
                value[index] = (float)evt.newValue;
                SetValue(value);
                m_UndoGroup = -1;
                MarkDirtyRepaint();
            });
            field.RegisterCallback <InputEvent>(evt =>
            {
                if (m_UndoGroup == -1)
                {
                    m_UndoGroup = Undo.GetCurrentGroup();
                    _mLogicNodeEditor.Owner.LogicGraphEditorObject.RegisterCompleteObjectUndo("Change " + _mLogicNodeEditor.ToString());
                }
                float newValue;
                if (!float.TryParse(evt.newData, out newValue))
                {
                    newValue = 0f;
                }
                var value    = GetValue();
                value[index] = newValue;
                SetValue(value);
                MarkDirtyRepaint();
            });
            field.RegisterCallback <KeyDownEvent>(evt =>
            {
                if (evt.keyCode == KeyCode.Escape && m_UndoGroup > -1)
                {
                    Undo.RevertAllDownToGroup(m_UndoGroup);
                    m_UndoGroup = -1;
                    m_Value     = GetValue();
                    evt.StopPropagation();
                }
                MarkDirtyRepaint();
            });
            Add(field);
        }
        void AddField(Vector4 initialValue, int index, string subLabel)
        {
            var dummy = new VisualElement {
                name = "dummy"
            };
            var label = new Label(subLabel);

            dummy.Add(label);
            Add(dummy);
            var field = new FloatField {
                userData = index, value = initialValue[index]
            };
            var dragger = new FieldMouseDragger <double>(field);

            dragger.SetDragZone(label);
            field.RegisterValueChangedCallback(evt =>
            {
                var value    = m_Get();
                value[index] = (float)evt.newValue;
                m_Set(value);
                m_Node.Dirty(ModificationScope.Node);
                m_UndoGroup = -1;
            });
            field.Q("unity-text-input").RegisterCallback <InputEvent>(evt =>
            {
                if (m_UndoGroup == -1)
                {
                    m_UndoGroup = Undo.GetCurrentGroup();
                    m_Node.owner.owner.RegisterCompleteObjectUndo("Change " + m_Node.name);
                }
                float newValue;
                if (!float.TryParse(evt.newData, NumberStyles.Float, CultureInfo.InvariantCulture.NumberFormat, out newValue))
                {
                    newValue = 0f;
                }
                var value = m_Get();
                if (Math.Abs(value[index] - newValue) > 1e-9)
                {
                    value[index] = newValue;
                    m_Set(value);
                    m_Node.Dirty(ModificationScope.Node);
                }
            });
            field.Q("unity-text-input").RegisterCallback <KeyDownEvent>(evt =>
            {
                if (evt.keyCode == KeyCode.Escape && m_UndoGroup > -1)
                {
                    Undo.RevertAllDownToGroup(m_UndoGroup);
                    m_UndoGroup = -1;
                    evt.StopPropagation();
                }
                this.MarkDirtyRepaint();
            });
            Add(field);
        }
Beispiel #21
0
        public Slider(
            float val,
            float min,
            float max,
            EventCallback <float> valueCB,
            EventCallback <float> minCB,
            EventCallback <float> maxCB
            )
        {
            ValueCallback = valueCB;
            MinCallback   = minCB;
            MaxCallback   = maxCB;

            Value = val;

            contentContainer.AddToClassList("bounded-float");
            contentContainer.AddToClassList("range");

            Range = new SliderFloat {
                highValue = max,
                lowValue  = min,
                value     = val
            };

            Min = new FloatField {
                value = min
            };
            Current = new FloatField {
                value = val
            };
            Max = new FloatField {
                value = max
            };

            Min.AddToClassList("min-value");
            Current.AddToClassList("current-value");
            Max.AddToClassList("max-value");

            var Fields = new VisualElement();

            Fields.AddToClassList("input-fields");

            Fields.Add(Min);
            Fields.Add(Current);
            Fields.Add(Max);

            contentContainer.Add(Range);
            contentContainer.Add(Fields);

            Range.RegisterValueChangedCallback(CurrentChanged);
            Min.RegisterValueChangedCallback(MinChanged);
            Current.RegisterValueChangedCallback(CurrentChanged);
            Max.RegisterValueChangedCallback(MaxChanged);
        }
Beispiel #22
0
        public ValueSlider(string label, float start, float end, SliderDirection direction, int pageSize,
                           float defaultValue = 0f) : base(label, start, end, direction, pageSize)
        {
            var newFloatField = new FloatField();

            value = defaultValue;
            this.RegisterValueChangedCallback(evt => { newFloatField.SetValueWithoutNotify(evt.newValue); });
            newFloatField.RegisterValueChangedCallback(evt => { value = evt.newValue; });
            Add(newFloatField);
            newFloatField.SetValueWithoutNotify(value);
        }
        void AddField(Vector4 initialValue, int index, string subLabel)
        {
            var dummy = new VisualElement {
                name = "dummy"
            };
            var label = new Label(subLabel);

            dummy.Add(label);
            Add(dummy);
            var field = new FloatField {
                userData = index, value = initialValue[index]
            };
            var dragger = new FieldMouseDragger <float>(field);

            dragger.SetDragZone(label);
            field.RegisterValueChangedCallback(evt =>
            {
                var value    = _get();
                value[index] = (float)evt.newValue;
                _set(value);
                _nodeEditor.SetDirty();
                _undoGroup = -1;
            });
            field.RegisterCallback <InputEvent>(evt =>
            {
                if (_undoGroup == -1)
                {
                    _undoGroup = Undo.GetCurrentGroup();
                    _nodeEditor.Owner.LogicGraphEditorObject.RegisterCompleteObjectUndo("Change " + _nodeEditor.NodeType());
                }
                if (!float.TryParse(evt.newData, NumberStyles.Float, CultureInfo.InvariantCulture.NumberFormat, out var newValue))
                {
                    newValue = 0f;
                }
                var value = _get();
                if (Math.Abs(value[index] - newValue) > 1e-9)
                {
                    value[index] = newValue;
                    _set(value);
                    _nodeEditor.SetDirty();
                }
            });
            field.RegisterCallback <KeyDownEvent>(evt =>
            {
                if (evt.keyCode == KeyCode.Escape && _undoGroup > -1)
                {
                    Undo.RevertAllDownToGroup(_undoGroup);
                    _undoGroup = -1;
                    evt.StopPropagation();
                }
                MarkDirtyRepaint();
            });
            Add(field);
        }
Beispiel #24
0
        /// <summary> Updates the way values are drawn in the inspector. </summary>
        /// <returns> The visual element containing the heirarchy and styles of the class. </returns>
        private VisualElement UpdateClassElements()
        {
            classElements.Clear();

            IMGUIContainer eventsContainer = new IMGUIContainer(DrawUnityEvents);

            classElements.Add(eventsContainer);

            visualTree.CloneTree(classElements);

            Toggle isMoonlightActiveToggle = classElements.Q <Toggle>("isMoonlightActive");

            isMoonlightActiveToggle.value = moonlightActive.boolValue;
            isMoonlightActiveToggle.RegisterValueChangedCallback(IsMoonlightActiveValueChanged);

            Toggle useTimerToggle = classElements.Q <Toggle>("useTimer");

            useTimerToggle.value = useTimerValue.boolValue;
            useTimerToggle.RegisterValueChangedCallback(UseTimersValueChanged);

            #region Active Field

            moonlightActiveTimeField           = classElements.Q <Slider>("moonlightActiveTime");
            moonlightActiveTimeField.lowValue  = moonlightTimeMin;
            moonlightActiveTimeField.highValue = moonlightTimeMax;
            moonlightActiveTimeField.value     = moonlightActiveTime.floatValue;
            moonlightActiveTimeField.RegisterValueChangedCallback(MoonlightActiveTimeValueChanged);

            moonlightActiveTimeFloatField       = classElements.Q <FloatField>("moonlightActiveValue");
            moonlightActiveTimeFloatField.value = moonlightActiveTime.floatValue;
            moonlightActiveTimeFloatField.RegisterValueChangedCallback(MoonlightActiveTimeValueChanged);

            #endregion

            #region Inactive Field

            moonlightInactiveTimeField           = classElements.Q <Slider>("moonlightInactiveTime");
            moonlightInactiveTimeField.lowValue  = moonlightTimeMin;
            moonlightInactiveTimeField.highValue = moonlightTimeMax;
            moonlightInactiveTimeField.value     = moonlightInactiveTime.floatValue;
            moonlightInactiveTimeField.RegisterValueChangedCallback(MoonlightInactiveTimeValueChanged);

            moonlightInactiveTimeFloatField       = classElements.Q <FloatField>("moonlightInactiveValue");
            moonlightInactiveTimeFloatField.value = moonlightInactiveTime.floatValue;
            moonlightInactiveTimeFloatField.RegisterValueChangedCallback(MoonlightInactiveTimeValueChanged);

            #endregion

            UpdateMoonlightTimerFields();

            return(classElements);
        }
Beispiel #25
0
        protected override void OnEnable()
        {
            base.OnEnable();

            rootVisualElement.styleSheets.Add((StyleSheet)EditorGUIUtility.Load("StyleSheets/SceneViewToolbarElements/SnapWindowsCommon.uss"));
            rootVisualElement.Add(new SnapSettingsHeader(L10n.Tr("Increment Snapping"), ResetValues));

            // Move
            m_MoveLinkedField = new LinkedVector3Field(L10n.Tr("Move"))
            {
                name = "Move"
            };
            m_MoveLinkedField.value  = EditorSnapSettings.move;
            m_MoveLinkedField.linked = Mathf.Approximately(m_MoveLinkedField.value.x, m_MoveLinkedField.value.y) &&
                                       Mathf.Approximately(m_MoveLinkedField.value.x, m_MoveLinkedField.value.z);
            rootVisualElement.Add(m_MoveLinkedField);

            EditorSnapSettings.moveChanged += (value) => m_MoveLinkedField.SetValueWithoutNotify(value);
            m_MoveLinkedField.RegisterValueChangedCallback(OnMoveValueChanged);

            // Rotate
            var rotate = new FloatField(L10n.Tr("Rotate"))
            {
                name = "Rotate"
            };

            rotate.value = EditorSnapSettings.rotate;
            rootVisualElement.Add(rotate);

            EditorSnapSettings.rotateChanged += (value) => rotate.SetValueWithoutNotify(value);
            rotate.RegisterValueChangedCallback(evt =>
            {
                EditorSnapSettings.rotate = evt.newValue;
                EditorSnapSettings.Save();
            });

            // Scale
            var scale = new FloatField(L10n.Tr("Scale"))
            {
                name = "Scale"
            };

            scale.value = EditorSnapSettings.scale;
            rootVisualElement.Add(scale);

            EditorSnapSettings.scaleChanged += (value) => scale.SetValueWithoutNotify(value);
            scale.RegisterValueChangedCallback(evt =>
            {
                EditorSnapSettings.scale = evt.newValue;
                EditorSnapSettings.Save();
            });
        }
Beispiel #26
0
        void Init()
        {
            FloatField field = new FloatField()
            {
                value = config.value != null ? (float)config.value : new float(),
            };

            field.RegisterValueChangedCallback((e) => {
                config.OnValueChanged(e.newValue);
                MarkDirtyRepaint();
            });
            Add(field);
        }
        FloatField AddField(VisualElement panel, Slider slider, int index, DielectricSpecularNode.DielectricMaterial initMaterial)
        {
            float initValue;

            if (index == 1)
            {
                initValue = initMaterial.indexOfRefraction;
            }
            else
            {
                initValue = initMaterial.range;
            }

            var field = new FloatField {
                userData = index, value = initValue
            };

            field.RegisterCallback <MouseDownEvent>(Repaint);
            field.RegisterCallback <MouseMoveEvent>(Repaint);
            field.RegisterValueChangedCallback(evt =>
            {
                var fieldValue = (float)evt.newValue;
                if (index == 1)
                {
                    m_DielectricMaterial.indexOfRefraction = fieldValue;
                }
                else
                {
                    m_DielectricMaterial.range = fieldValue;
                }

                m_PropertyInfo.SetValue(m_Node, m_DielectricMaterial, null);
                this.MarkDirtyRepaint();
            });
            field.Q("unity-text-input").RegisterCallback <FocusOutEvent>(evt =>
            {
                if (index == 1)
                {
                    RedrawIORControls(m_DielectricMaterial.indexOfRefraction);
                }
                else
                {
                    RedrawRangeControls(m_DielectricMaterial.range);
                }

                this.MarkDirtyRepaint();
            });
            panel.Add(field);
            return(field);
        }
Beispiel #28
0
        public FloatField AddFloatField(float value = 0f, bool alternate = false, bool secondAlternate = false, bool thirdAlternate = false)
        {
            FloatField el = new FloatField();

            el.value = value;
            el.AddToClassList("list-item-input");
            el.AddToClassList("list-item-float-input");
            AddAlternates(el, alternate, secondAlternate, thirdAlternate);
            el.RegisterValueChangedCallback(e => {
                eventManager.Raise <ListItemInputChange>(new ListItemInputChange(el));
            });
            this.Add(el);
            return(el);
        }
Beispiel #29
0
        protected void Init()
        {
            AddToClassList(USS_CLASS_NAME);
            AddToClassList("worldStateItem");
            AddToClassList("rounded");

            m_WorldStateField = new TextField("World State")
            {
                value = m_UtilityDescription.WorldStateName
            };
            m_WorldStateField.tooltip   = "The identifier of the world state. The corresponding world state value should be castable to float.";
            m_WorldStateField.maxLength = 30;
            hierarchy.Add(m_WorldStateField);

            m_OperatorSelectorField = new UtilityOperatorSelectorField("Operator")
            {
                value = m_UtilityDescription.UtilityOperator
            };
            m_OperatorSelectorField.tooltip = "Defines how the resulting value will be applied to the base utility value. All curves will be applied in order of appearance.";
            hierarchy.Add(m_OperatorSelectorField);

            m_CurveField = new CurveField("Curve")
            {
                value = m_UtilityDescription.UtilityCurve
            };
            m_CurveField.tooltip = "The curve that will be evaluated based on the world state. world state will be interpreted as a float.";
            hierarchy.Add(m_CurveField);

            m_CurveMultiplierField = new FloatField("Curve Multiplier")
            {
                value = m_UtilityDescription.CurveMultiplier
            };
            m_CurveMultiplierField.tooltip = "The evaluated curve value will be multiplied with this number before it is applied to the base utility value.";

            hierarchy.Add(m_CurveMultiplierField);

            m_WorldStateField.RegisterValueChangedCallback(WorldStateNameChanged);
            m_OperatorSelectorField.RegisterValueChangedCallback(UtilityOperatorChanged);
            m_CurveField.RegisterValueChangedCallback(CurveChanged);
            m_CurveMultiplierField.RegisterValueChangedCallback(CurveMultiplierChanged);

            this.AddManipulator(new Clickable(() => OnMouseDown?.Invoke(this)));

            this.AddManipulator(new ContextualMenuManipulator(_menubuilder =>
            {
                _menubuilder.menu.AppendAction("Delete", _dropDownMenuAction => OnDelete?.Invoke(this), DropdownMenuAction.Status.Normal);
                _menubuilder.menu.AppendAction("Duplicate", _dropDownMenuAction => OnDuplicate?.Invoke(this), DropdownMenuAction.Status.Normal);
            }));
        }
Beispiel #30
0
        public MinMaxSliderControl(Vector2 value, float min, float max)
        {
            _slider = new MinMaxSlider(value.x, value.y, min, max);

            _minText = new FloatField();
            _minText.RegisterValueChangedCallback(evt => this.SendChangeEvent(evt.previousValue, evt.newValue));
            _minText.AddToClassList(TextUssClassName);

            _maxText = new FloatField();
            _maxText.RegisterValueChangedCallback(evt => this.SendChangeEvent(evt.previousValue, evt.newValue));
            _maxText.AddToClassList(TextUssClassName);

            Add(_minText);
            Setup(value);
            Add(_maxText);
        }