32 lines
		
	
	
		
			952 B
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			952 B
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | |||
|  | using UnityEngine.UI; | |||
|  | 
 | |||
|  | public class TextWithCountUpInt : Text { | |||
|  | 
 | |||
|  | 	private int value; | |||
|  |     private Coroutine coroutine; | |||
|  | 
 | |||
|  |     public void ChangeValue(string format, int value){ | |||
|  | 		this.SafeStopCoroutine(coroutine); | |||
|  |         this.value = value; | |||
|  |         text = string.Format(format, value); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void CountUpAnimation(string format, int toValue, float duration){ | |||
|  | 		this.SafeStopCoroutine(coroutine); | |||
|  |         coroutine = _CountUpAnimation(format, value, toValue, duration); | |||
|  |     } | |||
|  | 
 | |||
|  |     private Coroutine _CountUpAnimation(string format, int oldValue, int toValue, float duration){ | |||
|  |         if(gameObject.activeInHierarchy){ | |||
|  |             return this.CallLerpSmooth(duration, lerp => { | |||
|  |                 value = (int)Mathf.Lerp(oldValue, toValue, lerp); | |||
|  |                 text = string.Format(format, value); | |||
|  |             }); | |||
|  |         }else{ | |||
|  |             text = string.Format(format, toValue); | |||
|  |             return null; | |||
|  |         } | |||
|  |     } | |||
|  | } |