using System; using AZTECHWB.Extensions; using TMPro; using UnityEngine; using UnityEngine.UI; namespace AZTECHWB.UI { public class SliderInputField : MonoBehaviour { private bool isUpdating = false; public TextMeshProUGUI Value; public Slider Slider; public void SetSliderInputField() { transform.TryGetComponentInChildren(nameof(Value), out Value); Slider = transform.GetComponentInChildren(true); Slider.onValueChanged.AddListener(OnSliderValueChanged); } public void SetText(string value) { if (isUpdating) return; isUpdating = true; Value.text = value; if (float.TryParse(value, out float v)) Slider.SetValueWithoutNotify(v); isUpdating = false; } void OnSliderValueChanged(float value) { if (isUpdating) return; var newValue = Math.Truncate(value * 10f) / 10f; isUpdating = true; Value.text = newValue.ToString("0.#"); isUpdating = false; } public string GetValue() { return Value.text; } } }