public void OnAnimationEnd(AnimatorStateInfo stateInfo, int layerIndex) { if (stateInfo.IsName("FadeIn")) { onFadeIn?.Invoke(); OnFadeIn?.Invoke(); //Perform operations if (onFadeInFinish != null) { coroutineTasks = StartCoroutine(CoroutinePerformTasks(minSeconds, onFadeInFinish?.Invoke(), () => { FadeOut(); onTasksFinished?.Invoke(); })); } else { FadeOut(); onTasksFinished?.Invoke(); OnTasksFinished?.Invoke(); } onFadeInFinish = null; } else if (stateInfo.IsName("FadeOut")) { onFadeOut?.Invoke(); OnFadeOut?.Invoke(); } }