using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
///
/// 进度条功能,带有+-按钮控制,最大数量按钮
///
public class SliderPanel : MonoBehaviour
{
[SerializeField] Text countText;
[SerializeField] Slider slider;
[SerializeField] LongPressButton addBtn;
[SerializeField] LongPressButton decBtn;
[SerializeField] ButtonEx maxBtn;
int count;
int maxCount;
Action OnChangeEvent;
void Start()
{
slider.AddListener((value) => { Refresh(); });
addBtn.AddListener(() =>
{
slider.value += 1;
Refresh();
});
addBtn.onPress.AddListener(() =>
{
slider.value += 1;
Refresh();
});
decBtn.AddListener(() =>
{
slider.value -= 1;
Refresh();
});
decBtn.onPress.AddListener(() =>
{
slider.value -= 1;
Refresh();
});
maxBtn.AddListener(() =>
{
slider.value = slider.maxValue;
Refresh();
});
}
public void Init(Action _OnChangeEvent, int _maxCount, int _count = 1)
{
count = _count;
maxCount = _maxCount;
slider.minValue = 1;
slider.maxValue = _maxCount;
slider.value = count;
Refresh();
OnChangeEvent = _OnChangeEvent;
}
void Refresh()
{
count = (int)slider.value;
countText.text = count.ToString();
if (count >= maxCount)
{
addBtn.interactable = false;
addBtn.SetColorful(null, false);
maxBtn.interactable = false;
maxBtn.SetColorful(null, false);
}
else
{
addBtn.interactable = true;
addBtn.SetColorful(null, true);
maxBtn.interactable = true;
maxBtn.SetColorful(null, true);
}
if (count <= 0)
{
decBtn.interactable = false;
decBtn.SetColorful(null, false);
}
else
{
decBtn.interactable = true;
decBtn.SetColorful(null, true);
}
OnChangeEvent?.Invoke(count);
}
}