| New file |
| | |
| | | using UnityEngine; |
| | | using UnityEngine.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("TianziBillborad07"), 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) |
| | | { |
| | | m_LvText.text = string.Format(Language.Get("TianziBillborad07"), presentStage); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (Mathf.Abs(slider.value - value) > 0.001f) |
| | | { |
| | | slider.value = Mathf.SmoothDamp(slider.value, value, ref refSpeed, delay); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |