miduo_client/Assets/Scripts/UI/SliderCtrl.cs

55 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GameCore;
namespace GameLogic
{
public class SliderCtrl : MonoBehaviour
{
[SerializeField] Slider slider;
[SerializeField] Text progress;
float cur;
/// <summary>
/// 更新slider
/// </summary>
/// <param name="cur">Current.</param>
/// <param name="max">Max.</param>
public void UpdateValue(int cur, int max)
{
this.cur = 1f * cur / max;
}
/// <summary>
/// 更新slider
/// </summary>
/// <param name="value">Value.</param>
public void UpdateValue(float value)
{
this.cur = value;
}
/// <summary>
/// 强制设置slider
/// </summary>
/// <param name="value">Value.</param>
public void SetValue(float value)
{
this.cur = value;
this.slider.value = value;
this.progress.text= Mathf.Floor(value*100) + "%";
}
void Update()
{
if (Mathf.Abs(slider.value - cur) < 0.005)
return;
float fv = Mathf.Lerp(slider.value, cur, Time.deltaTime * 5);
slider.value = fv;
progress.text = Mathf.Floor(fv * 100) + "%";
}
}
}