Задать вопрос
alon_mix
@alon_mix
1

Как решить проблему с takeDamage?

Проблема заключается в том, что метод GiveDamage работает даже если нет обьекта(Collider2D coll).

void GiveDamage()
    {
 
        HealthWall -= damage ;
     
 
    }
    void OnTriggerStay2D(Collider2D coll)
    {
        if (coll.gameObject.tag == "Enemy")
        {
 
        
        countEnemy++;
        InvokeRepeating("GiveDamage", countEnemy, 1);//название скрипта, +1 к GiveDamage если в триггер вошел коллайдер, время исполнения
            Debug.Log("Invoke");
    }
}
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
  • GB (GeekBrains)
    Разработчик Игр на Unity
    10 месяцев
    Далее
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Ну разумеется работает, вы же его запускаете через InvokeRepeating, вот он и выполняется каждую секунду. Предположу, что вы хотели использовать StartCoroutine, но перепутали метод. Советую почитать документацию и посмотреть туториал.
P. S. Каждый раз, когда вы вызываете метод по строке - где-то умирает котёнок.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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