41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class TextWithCountUp : Text {
|
|
|
|
private Coroutine coroutine;
|
|
|
|
public void CountUpAnimation(string format, int oldCount, int count, float duration){
|
|
if(gameObject.activeInHierarchy){
|
|
this.SafeStopCoroutine(coroutine);
|
|
coroutine = _CountUpAnimation(format, oldCount, count, duration);
|
|
}else{
|
|
text = string.Format(format, count);
|
|
}
|
|
}
|
|
|
|
private Coroutine _CountUpAnimation(string format, int oldCount, int count, float duration){
|
|
return this.CallLerpSmooth(duration, lerp => {
|
|
text = string.Format(format, (int)Mathf.Lerp(oldCount, count, lerp));
|
|
}, () => {
|
|
text = string.Format(format, count);
|
|
});
|
|
}
|
|
|
|
public void CountUpAnimation(string format, float oldCount, float count, float duration){
|
|
if(gameObject.activeInHierarchy){
|
|
this.SafeStopCoroutine(coroutine);
|
|
coroutine = _CountUpAnimation(format, oldCount, count, duration);
|
|
}else{
|
|
text = string.Format(format, count);
|
|
}
|
|
}
|
|
private Coroutine _CountUpAnimation(string format, float oldCount, float count, float duration){
|
|
return this.CallLerpSmooth(duration, lerp => {
|
|
text = string.Format(format, Mathf.Lerp(oldCount, count, lerp));
|
|
}, () => {
|
|
text = string.Format(format, count);
|
|
});
|
|
}
|
|
}
|