From 5af6995e25b473be593471b8131b0eaa9e910ba3 Mon Sep 17 00:00:00 2001 From: AnnulusGames Date: Sat, 3 Feb 2024 20:02:33 +0900 Subject: [PATCH] Fix: Slider is not updated when initial value is 0 --- .../DebugUI/Runtime/DebugUIElementFactory.cs | 12 +++--------- .../Assets/DebugUI/Runtime/Elements/FillSlider.cs | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/DebugUI/Assets/DebugUI/Runtime/DebugUIElementFactory.cs b/src/DebugUI/Assets/DebugUI/Runtime/DebugUIElementFactory.cs index 2c51585..f970838 100644 --- a/src/DebugUI/Assets/DebugUI/Runtime/DebugUIElementFactory.cs +++ b/src/DebugUI/Assets/DebugUI/Runtime/DebugUIElementFactory.cs @@ -17,7 +17,7 @@ internal sealed class DebugSpaceFactory : IDebugUIElementFactory public VisualElement CreateVisualElement(ICollection disposables) { - return new VisualElement() { style = { height = Height }}; + return new VisualElement() { style = { height = Height } }; } } @@ -64,10 +64,7 @@ public VisualElement CreateVisualElement(ICollection disposables) highValue = HighValue, }; - field.schedule.Execute(() => - { - field.value = Getter(); - }); + field.ForceUpdateValue(Getter()); if (Setter == null) { @@ -108,10 +105,7 @@ public VisualElement CreateVisualElement(ICollection disposables) highValue = HighValue, }; - field.schedule.Execute(() => - { - field.value = Getter(); - }); + field.ForceUpdateValue(Getter()); if (Setter == null) { diff --git a/src/DebugUI/Assets/DebugUI/Runtime/Elements/FillSlider.cs b/src/DebugUI/Assets/DebugUI/Runtime/Elements/FillSlider.cs index 409ae67..8ad4dde 100644 --- a/src/DebugUI/Assets/DebugUI/Runtime/Elements/FillSlider.cs +++ b/src/DebugUI/Assets/DebugUI/Runtime/Elements/FillSlider.cs @@ -29,10 +29,15 @@ public FillSlider() : base() dragContainer.AddToClassList("debug-ui-slider__drag-container"); OnValueChanged(value); - this.RegisterValueChangedCallback(x => OnValueChanged(x.newValue)); } + public void ForceUpdateValue(float x) + { + this.value = x; + OnValueChanged(x); + } + void OnValueChanged(float x) { filler.style.width = Length.Percent(Mathf.InverseLerp(lowValue, highValue, x) * 100f); @@ -66,10 +71,15 @@ public FillSliderInt() : base() dragContainer.AddToClassList("debug-ui-slider__drag-container"); OnValueChanged(value); - this.RegisterValueChangedCallback(x => OnValueChanged(x.newValue)); } + public void ForceUpdateValue(int x) + { + this.value = x; + OnValueChanged(x); + } + void OnValueChanged(int x) { filler.style.width = Length.Percent(Mathf.InverseLerp(lowValue, highValue, x) * 100f);