// -- PUBLIC // .. OPERATIONS public void Fade(float target_alpha, float time, EasingFunctions.TYPE easing_type = EasingFunctions.TYPE.Regular) { StopCoroutine("UpdateFade"); object[] args = new object[] { target_alpha, time, easing_type }; StartCoroutine("UpdateFade", args); }
// -- PUBLIC // .. OPERATIONS public void StartAnimation( EasingFunctions.TYPE ease_type, Vector3 start_scale, Vector3 end_scale, float time ) { object[] parameters = { time, ease_type, start_scale, end_scale }; StopCoroutine("UpdateScale"); StartCoroutine("UpdateScale", parameters); }
public void StartAnimation( EasingFunctions.TYPE ease_type, Vector3 start_position, Vector3 end_position, float time ) { object[] parameters = { time, ease_type, start_position, end_position }; StopCoroutine("UpdateTranslation"); StartCoroutine("UpdateTranslation", parameters); }
// .. COROUTINES IEnumerator UpdateFade(object[] args) { float target_alpha = Mathf.Clamp01((float)args[0]); float animation_time = (float)args[1]; EasingFunctions.TYPE easing_type = (EasingFunctions.TYPE)args[2]; if (CanvasGroup == null) { CanvasGroup = GetComponent <CanvasGroup>(); } float start_alpha = CanvasGroup.alpha; float elapsed = 0f; while (elapsed < animation_time) { CanvasGroup.alpha = EasingFunctions.Ease(easing_type, elapsed / animation_time, start_alpha, target_alpha); elapsed += Time.deltaTime; yield return(null); } CanvasGroup.alpha = target_alpha; }