Задать вопрос
@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); нет ожидания, то есть враг умирает моментально какое-бы число там не стояло.
Везде используется этот метод вместе с энумератором, но впихивать энуменатор кажется мне не целесообразным, тогда появляется вопрос, что делать в подобной ситуации?
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Профессия Разработчик игр на Unity с нуля
    10 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
  • GB (GeekBrains)
    Разработчик Игр на Unity
    10 месяцев
    Далее
Решения вопроса 1
WaitForSecond нужно не просто создавать, а делать yield return

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

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

Похожие вопросы