58 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
|
|
}
|