using System.Collections; 
 | 
using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
using System; 
 | 
  
 | 
  
 | 
    [DisallowMultipleComponent] 
 | 
    public class MultipleSmoothSlider : MonoBehaviour 
 | 
    { 
 | 
  
 | 
        [SerializeField] 
 | 
        SmoothSlider[] m_Sliders; 
 | 
        public SmoothSlider[] sliders 
 | 
        { 
 | 
            get 
 | 
            { 
 | 
                return this.m_Sliders; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        [SerializeField] 
 | 
        [Range(0, 1)] 
 | 
        float m_Value; 
 | 
        public float value 
 | 
        { 
 | 
            get 
 | 
            { 
 | 
                return m_Value; 
 | 
            } 
 | 
            set 
 | 
            { 
 | 
                m_Value = Mathf.Clamp01(value); 
 | 
  
 | 
                if (this.sliders != null) 
 | 
                { 
 | 
                    for (var i = 0; i < sliders.Length; i++) 
 | 
                    { 
 | 
                        var slider = sliders[i]; 
 | 
                        if (slider != null) 
 | 
                        { 
 | 
                            slider.value = m_Value; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
  
 | 
            } 
 | 
        } 
 | 
  
 | 
  
 | 
        public void ResetValue(float _value) 
 | 
        { 
 | 
            if (this.sliders != null) 
 | 
            { 
 | 
                for (var i = 0; i < sliders.Length; i++) 
 | 
                { 
 | 
                    var slider = sliders[i]; 
 | 
                    if (slider != null) 
 | 
                    { 
 | 
                        slider.ResetValue(_value); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public void UpdateDelayTimes(float[] _delayTimes) 
 | 
        { 
 | 
            if (sliders == null) 
 | 
            { 
 | 
                return; 
 | 
            } 
 | 
  
 | 
            if (_delayTimes == null) 
 | 
            { 
 | 
                return; 
 | 
            } 
 | 
  
 | 
            var min = Mathf.Min(_delayTimes.Length, sliders.Length); 
 | 
  
 | 
            for (var i = 0; i < min; i++) 
 | 
            { 
 | 
                sliders[i].delay = _delayTimes[i]; 
 | 
            } 
 | 
  
 | 
        } 
 | 
  
 | 
        private void OnValidate() 
 | 
        { 
 | 
            value = m_Value; 
 | 
        } 
 | 
  
 | 
    } 
 |