1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  | using System.Collections; 
 |  using System.Collections.Generic; 
 |  using UnityEngine; 
 |  using UnityEngine.UI; 
 |    
 |    
 |  [DisallowMultipleComponent] 
 |    
 |  public class SmoothSlider : 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] public Text Text; 
 |    
 |      float refSpeed = 0f; 
 |    
 |      public void ResetValue(float _value) 
 |      { 
 |          value = _value; 
 |          if (slider != null) 
 |          { 
 |              slider.value = Mathf.Clamp01(_value); 
 |          } 
 |      } 
 |    
 |      void OnEnable() 
 |      { 
 |          refSpeed = 0f; 
 |      } 
 |    
 |      void LateUpdate() 
 |      { 
 |          if (slider == null) 
 |          { 
 |              return; 
 |          } 
 |          if (Mathf.Abs(slider.value - value) > 0.001f) 
 |          { 
 |              slider.value = Mathf.SmoothDamp(slider.value, value, ref refSpeed, delay); 
 |          } 
 |      } 
 |    
 |  } 
 |  
  |