@Korsakovlev

Почему не идет задержка времени?

У меня есть код
private void Die()
    {
        die = true;
        Vector3 theScale = transform.localScale;
        if (theScale.x > 0)
        {
            gameObject.transform.Rotate(0, 0, 90);
        }
        else if (theScale.x < 0)
        {
            gameObject.transform.Rotate(0, 0, 270);
        }
        gameObject.GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.FreezeAll;
        gameObject.GetComponent<Enemy>().enabled = false;
        gameObject.GetComponent<BoxCollider2D>().enabled = false;
        speed = 0;
        new WaitForSeconds(1);
        Destroy(gameObject);
    }

в методе new WaitForSeconds(1); нет ожидания, то есть враг умирает моментально какое-бы число там не стояло.
Везде используется этот метод вместе с энумератором, но впихивать энуменатор кажется мне не целесообразным, тогда появляется вопрос, что делать в подобной ситуации?
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
WaitForSecond нужно не просто создавать, а делать yield return

Соответственно и Die должен возвращать IEnumerable и вызываться через StartCoroutine
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы