появлялся и через 3 секунды исчезал, а он исчезает сразу. Мой код:
public void OnButtonClick()
{
textDisplay.text = "123";
StartCoroutine(HideText(3.0f));
textDisplay.text = "";
}
IEnumerator HideText(float delay)
{
yield return new WaitForSeconds(delay);
}
}
Потому что куротина запускается отдельно
а как сделать чтобы работало ? не совсем понимаю
public void OnButtonClick() { StartCoroutine(HideText(3.0f)); } IEnumerator HideText(float delay) { textDisplay.text = "123"; yield return new WaitForSeconds(delay); textDisplay.text = ""; } }
У тебя ожидание внутри корутины. На то, что снаружи оно не влияет
корутина это так сказать асинхронный метод, она не приостанавливает основной поток, а работает с ним в параллель, а ты ждал что корутина остановит основной поток 🤷
а как сделать чтобы основной поток останавливался ?
этого делать не надо, в основном потоке выполняется большинство процессов юнити, к примеру жизненный цикл монобехов, остановка основного потока у тебя выглядела бы как фриз
значит лучше делать через корутину временное появление текста и т.д ?
да, если требуется ожидание которое не приостанавливает основной поток и не создаёт новый, тогда подходит корутина или async
Обсуждают сегодня