using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; public class DevOptionItem : MonoBehaviour { public TMP_Text txtTitle; public TMP_InputField inputMin, inputMax, inputValue; public Slider slider; public UnityAction OnChanged; void Awake() { inputMin.onEndEdit.AddListener(OnEndEditMin); inputMax.onEndEdit.AddListener(OnEndEditMax); inputValue.onEndEdit.AddListener(OnEndEditValue); slider.onValueChanged.AddListener(OnValueChanged); } public void Setup(string title, float min, float max, float value){ txtTitle.text = title; inputMin.text = min.ToString(); inputMax.text = max.ToString(); inputValue.text = value.ToString(); slider.minValue = min; slider.maxValue = max; slider.value = value; } void OnEndEditMin(string value){ float.TryParse(value, out float min); slider.minValue = min; } void OnEndEditMax(string value){ float.TryParse(value, out float max); slider.maxValue = max; } void OnEndEditValue(string value){ float parsedValue; if (float.TryParse(value, out parsedValue)) { slider.value = parsedValue; } } void OnValueChanged(float value){ inputValue.text = value.ToString(); if (OnChanged != null) { OnChanged.Invoke(value); } } }