103 lines
2.4 KiB
C#
103 lines
2.4 KiB
C#
using BrewMonster.Assets.PerfectWorld.Scripts.UI;
|
|
using BrewMonster.Common;
|
|
using BrewMonster.Managers;
|
|
using BrewMonster.Network;
|
|
using BrewMonster.Scripts;
|
|
using BrewMonster.Scripts.Managers;
|
|
using BrewMonster.UI;
|
|
using CSNetwork.GPDataType;
|
|
using Cysharp.Threading.Tasks.Triggers;
|
|
using PerfectWorld.Scripts.Managers;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
namespace BrewMonster
|
|
{
|
|
public class SliderController : MonoBehaviour
|
|
{
|
|
|
|
[Header("Slider")]
|
|
public Slider slider;
|
|
public TextMeshProUGUI sliderValueText;
|
|
|
|
//[Header("Action Event")]
|
|
//private UnityEvent[] levelEvents = new UnityEvent[6];
|
|
|
|
//private int currentLevel = -1;
|
|
|
|
//Action<int> OnSlideValueChange = null;
|
|
private void OnEnable()
|
|
{
|
|
if(slider != null)
|
|
{
|
|
slider.onValueChanged.AddListener(OnSliderValueChange);
|
|
}
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
if (slider != null)
|
|
{
|
|
slider.onValueChanged.RemoveListener(OnSliderValueChange);
|
|
}
|
|
}
|
|
|
|
public void InitSlide(int curlevel)
|
|
{
|
|
slider.value = curlevel;
|
|
UpdateSliderText(curlevel);
|
|
}
|
|
|
|
private void OnSliderValueChange(float value)
|
|
{
|
|
UpdateLevelFromSlider();
|
|
}
|
|
|
|
private void UpdateLevelFromSlider()
|
|
{
|
|
if (slider == null)
|
|
return;
|
|
|
|
int level = GetLevelFromValue(slider.value);
|
|
UpdateSliderText(level);
|
|
}
|
|
|
|
private int GetLevelFromValue(float value)
|
|
{
|
|
int level = Mathf.RoundToInt(value);
|
|
return Mathf.Clamp(level, 1, 6);
|
|
}
|
|
|
|
private void UpdateSliderText(int level)
|
|
{
|
|
if (sliderValueText == null)
|
|
{
|
|
return;
|
|
}
|
|
sliderValueText.text = $"Mức {level}";
|
|
}
|
|
|
|
public int GetValueCurrentSlide()
|
|
{
|
|
return (int)slider.value;
|
|
}
|
|
|
|
//public void Invoke(int level)
|
|
//{
|
|
// int index = level - 1;
|
|
// if(index < 0 || index >= levelEvents.Length)
|
|
// {
|
|
// return;
|
|
// }
|
|
|
|
// levelEvents[index]?.Invoke();
|
|
//}
|
|
}
|
|
}
|