WaitForSeconds и Coroutine (unity3D)

Всех приветствую, такая проблема, что есть у меня скрипт, который висит на UI элементе. В этом скрипте, запуск анимации появления экрана или исчезновения. Когда идет запуск анимации появление экрана, срабатывает WaitForSeconds. И вот проблема. На одной сцене, этот скрипт работает идеально, а на другой, после WaitForSeconds просто не работает дальше код.

( Я уже пытался и поиграть с Time.timescale = 0, Time.timescale = 1. Ничего не помогает. )

Вот сам код:

public int SceneClose; // 1 - Сцена закрывается | 0 - Сцена открывается

private Animator animators;
void Start()
{
    Time.timeScale = 0;
    Time.timeScale = 1;
    StopAllCoroutines();
    animators = GetComponent<Animator>();
    StartScriptAnim();
}

private void StartScriptAnim()
{
    if (SceneClose == 0)
    {
        StartCoroutine(StopAnim());
    }
    else if (SceneClose == 1)
    {
        StartCoroutine(StartAnim());
    }
}

IEnumerator StopAnim()
{
    animators.SetBool("IsOpen", true);
    yield return new WaitForSeconds(1f);
    SceneClose = 1;
    PlayerPrefs.DeleteKey("NameScene");
    gameObject.transform.parent.gameObject.SetActive(false);
}

IEnumerator StartAnim()
{
    animators.SetBool("IsOpen", false);
    yield return new WaitForSeconds(1f);
    Debug.Log("Load");
    SceneManager.LoadScene("LoadScene");
}

Может кто сможет помочь?


Ответы (1 шт):

Автор решения: KraGen.Games

сделай метод

void OnEnable()
{
    Time.timeScale = 1;
}

и всё. Не нужно сначала делать таймСкейл 0 а потом 1. А Старт срабатывает 1 раз при запуске скрипта

→ Ссылка