using UnityEngine; using UnityEngine.UI; namespace Cryville.Common.Unity.UI { /// /// A non-interactive that has an internal tweening behaviour. /// public class ProgressBar : Slider { [SerializeField][Range(0f, 1f)] [Tooltip("The tweening parameter.")] float m_smooth = 0; /// /// The tweening parameter. /// public float Smooth { get { return m_smooth; } set { m_smooth = value; } } [SerializeField] [Tooltip("The target value.")] float m_targetValue; /// /// Gets the current displayed value or sets the target value. /// public override float value { get { return base.value; } set { m_targetValue = value; } } protected override void Update() { base.value = (base.value - m_targetValue) * m_smooth + m_targetValue; base.Update(); } } }