private void FinishWaitingToFadeOut()
    {
        if (elements_group != null)
        {
            elements_group.DOFade(0, time_fade_out);
        }

        state = LanguageSelectState.FADING_OUT;
        timer_fade_out.Start();
    }
    // Update is called once per frame
    void Update()
    {
        switch (state)
        {
        case LanguageSelectState.WAITING_TO_FADE_IN:
        {
            if (timer_before_fading_in.ReadTime() > time_before_fading_in)
            {
                if (elements_group != null)
                {
                    elements_group.DOFade(1, time_fade_in);
                }

                timer_fade_in.Start();
                state = LanguageSelectState.FADING_IN;
            }

            break;
        }

        case LanguageSelectState.FADING_IN:
        {
            if (timer_fade_in.ReadTime() > time_fade_in)
            {
                state = LanguageSelectState.WAITING_TO_FADE_OUT;
            }
            break;
        }

        case LanguageSelectState.FADING_OUT:
        {
            if (timer_fade_out.ReadTime() > time_fade_out)
            {
                if (background_fade)
                {
                    state = LanguageSelectState.BACKGROUND_FADING_OUT;

                    if (background_image != null)
                    {
                        background_image.DOFade(0, time_background_fade_out);
                    }

                    timer_background_fade_out.Start();
                }
                else
                {
                    state = LanguageSelectState.FINISHED;
                    UIOnFinish();
                }
            }
            break;
        }

        case LanguageSelectState.BACKGROUND_FADING_OUT:
        {
            if (timer_background_fade_out.ReadTime() > time_background_fade_out)
            {
                state = LanguageSelectState.FINISHED;
                UIOnFinish();
            }
            break;
        }

        case LanguageSelectState.FINISHED:
        {
            english_button.gameObject.SetActive(false);
            spanish_button.gameObject.SetActive(false);
            background_image.gameObject.SetActive(false);

            break;
        }
        }
    }