From 511483319e8e960264571ef2a0ed0d3a2b7b4796 Mon Sep 17 00:00:00 2001 From: MuHua-123 <136542559+MuHua-123@users.noreply.github.com> Date: Fri, 6 Dec 2024 15:43:44 +0800 Subject: [PATCH] Update MUSliderHorizontal.cs --- Packages/UIControl/Runtime/MUSliderHorizontal.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Packages/UIControl/Runtime/MUSliderHorizontal.cs b/Packages/UIControl/Runtime/MUSliderHorizontal.cs index 5424532..148aaaf 100644 --- a/Packages/UIControl/Runtime/MUSliderHorizontal.cs +++ b/Packages/UIControl/Runtime/MUSliderHorizontal.cs @@ -106,15 +106,21 @@ namespace MuHua { tracker.style.width = CurrentPosition; UpdateFloatField(); } + internal void UpdateFloatField(ChangeEvent evt) { + float value = Mathf.Clamp(evt.newValue, MinValue, MaxValue); + slidingValue = (value - MinValue) / (MaxValue - MinValue); + tracker.style.width = CurrentPosition; + SlidingValueChanged?.Invoke(Value); + } internal void UpdateFloatField(bool value) { isDisplayInput = value; floatField.style.display = isDisplayInput ? DisplayStyle.Flex : DisplayStyle.None; } internal void UpdateFloatField() { - floatField.value = Value; + floatField.SetValueWithoutNotify(Value); } internal float UpdateValue() { - float value = (MaxValue - MinValue) * SlidingValue; + float value = Mathf.Lerp(MinValue, MaxValue, SlidingValue); if (dataType == RoundDataType.保留两位小数) { value = (float)Math.Round(value, 2); } if (dataType == RoundDataType.整数) { value = Mathf.FloorToInt(value); } return Mathf.Clamp(value, MinValue, MaxValue); @@ -165,6 +171,8 @@ namespace MuHua { dragger.RegisterCallback((evt) => isDragger = false); dragger.RegisterCallback((evt) => isDragger = false); + floatField.RegisterCallback>(UpdateFloatField); + container.RegisterCallback(ContainerDown); } private void DraggerDown(PointerDownEvent evt) {