public IEnumerator ChangeValue(int changedValue)
        {
            m_ChangedValue.text  = string.Format("{0}{1}", changedValue > 0 ? "+" : "-", Mathf.Abs(changedValue));
            m_ChangedValue.color = changedValue > 0 ? Color.green : Color.red;

            var step       = changedValue > 0 ? 1 : -1;
            var finalValue = m_ProgressBar.value + changedValue;
            var wait       = new WaitForSeconds(0.02f);

            m_ChangedValue.SetActive(true);
            yield return(m_Animation.PlayAndWait());

            m_ChangedValue.SetActive(false);

            while (m_ProgressBar.value != finalValue)
            {
                var newValue = m_ProgressBar.value + step;

                if (newValue <= m_ProgressBar.minValue || newValue >= m_ProgressBar.maxValue)
                {
                    yield break;
                }
                m_ProgressBar.value = newValue;

                yield return(wait);
            }

            m_ProgressBar.value = finalValue;
        }