using System; using UnityEngine.UIElements; namespace RosettaUI.UIToolkit { public interface IClampFreeSlider where TValue : IComparable { BaseSlider Slider { get; } VisualElement InputField { get; } } public static class SliderInFieldExtension { private const string UssClassName = "rosettaui-slider-in-field"; public static void Initialize(this TClampFreeSlider sliderInField) where TClampFreeSlider : BaseField, IClampFreeSlider where TValue : IComparable { sliderInField.AddToClassList(UssClassName); var slider = sliderInField.Slider; slider.RegisterValueChangedCallback(evt => sliderInField.value = evt.newValue); sliderInField.Insert(0, slider); } } }