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();
            }
        }