Files
soccar2d/Assets/Scripts/DevOptionItem.cs
2026-02-05 06:32:52 +05:30

58 lines
1.4 KiB
C#

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<float> 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);
}
}
}