//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, October 10, 2017 //-------------------------------------------------------- using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [DisallowMultipleComponent] public class IntensifySmoothSlider:MonoBehaviour { [SerializeField] Slider m_Slider; public Slider slider { get { return m_Slider; } } [SerializeField] [Range(0, 10)] float m_Delay = 0.2f; public float delay { get { return m_Delay; } set { m_Delay = Mathf.Clamp(value, 0, 10); } } [SerializeField] [Range(0, 1)] float m_Value = 0f; public float value { get { return m_Value; } set { m_Value = Mathf.Clamp01(value); } } [SerializeField] Text m_LvText; int m_Stage = 0; public int stage { get { return m_Stage; } set { m_Stage = value; } } private int presentStage; public int CurrentStage { get { return presentStage; } } float refSpeed = 0f; public void ResetStage() { presentStage = stage; } public void ResetValue(float _value) { value = _value; if (slider != null) { slider.value = Mathf.Clamp01(_value); } } void OnEnable() { refSpeed = 0f; if (m_LvText != null) { m_LvText.text = string.Format(Language.Get("Z1024"), presentStage); } } void LateUpdate() { if (slider == null) { return; } if (presentStage < m_Stage) { slider.value = Mathf.SmoothDamp(slider.value, 1, ref refSpeed, delay / 2); if (slider.value >= 0.999f) { slider.value = 0f; presentStage++; if (m_LvText != null) { SoundPlayer.Instance.PlayUIAudio(13); m_LvText.text= string.Format(Language.Get("Z1024"), presentStage); } } } else { if (Mathf.Abs(slider.value - value) > 0.001f) { slider.value = Mathf.SmoothDamp(slider.value, value, ref refSpeed, delay); } } } } }