Задать вопрос
@yraiv

Почему у переменной берется 0?

Хочу горение реализовать, а именно постепенное нанесение урона, каждые n секунды снимать хп. Почему он обнуляет мои значения при запуске карутины
void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.tag == "FireBullet")
        {
            fireDamage = collider.gameObject.GetComponent<FireDamage>().atack; // получаю 4
            timeBurn = collider.gameObject.GetComponent<FireDamage>().TimeFire; // получаю 4
            ThistimeBurn = 0;
            Burning();
        }

    }

IEnumerator Burning()
    {
        Debug.Log(timeBurn); // получаю 0


        if (timeBurn > ThistimeBurn)
        {

            health = -fireDamage;
            ThistimeBurn = +Time.deltaTime;


            yield return new WaitForSecondsRealtime(1f);
            StartCoroutine(Burning());
        }

    }
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой 3 комментария
Ответ пользователя Farawa К ответам на вопрос (2)
@Farawa
потому что в триггере ты получаешь данные из объекта, а в корутине хз откуда, еще ты не запускаешь корутину в принципе, лучше стартуй корутину на объекте, который будет гореть, еще в корутину передавай этот объект, чтобы менять его данные
Ответ написан