private IEnumerator StartCrossFade(ResultType type) { switch (type) { case ResultType.WIN: WinScreen.interactable = true; WinScreen.blocksRaycasts = true; break; case ResultType.LOSE: LoseScreen.interactable = true; LoseScreen.blocksRaycasts = true; break; default: Debug.LogError("Impossible Evaluation"); throw new System.Exception(); } float t = 0; while (crossFadePrecentage < 1) { t += Time.deltaTime / crossFadeDuration; crossFadePrecentage = AbsoluteLerp(crossFadePrecentage, 1, t); switch (type) { case ResultType.WIN: WinScreen.alpha = crossFadePrecentage; break; case ResultType.LOSE: LoseScreen.alpha = crossFadePrecentage; break; default: Debug.LogError("Impossible Evaluation"); throw new System.Exception(); } yield return(null); } resultScreenManager.UpdateTexts(); }