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 раз при запуске скрипта