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

Unity C# — Как, после получения урона персонажем, дать ему неуязвимость?

Всем привет. Я новичок, изучаю Unity 3D, пишу на C#. Экспериментирую на одной игре. Сейчас столкнулся с проблемой: как, при получении урона главный герой получает неуязвимость, например на 2 секунды(само получение урона уже реализовал)? За ранее спасибо
  • Вопрос задан
  • 4043 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 3
Прочитайте документацию Unity3D https://docs.unity3d.com/ru/current/Manual/index.html
Прочитайте вводный курс по C# на https://metanit.com/sharp/

По вопросу.
Главный герой - это игровой объект на котором скрипт, в этом скрипте есть метод Damage(int amount).
В нем происходит проверка может ли главный герой получить урон или нет, а именно флаг бессмертия true/false. Флаг может изменятся под действием таймера, в документации есть пример его использования.

Если бессмертие может еще кто либо использовать, то это дело лучше вынести в отдельный класс (декоратор).
Ответ написан
Комментировать
MrMureno
@MrMureno Куратор тега Unity
VR for all
Update()
{
  timer -=Time.deltaTime;
  if(timer<=0)
  {
     godMode = false;
  }
  else
  {
       godMode  = true;
  }
}


в момент как захотели сделать неуязвимым, увеличили таймер на N. пока не станет равным нулю - будет флаг неуязвимости.
Ну а как по флагу сделать чтоб урон не домажил, думаю вы уже разберетесь)
еще вариант просто установить флаг и через Invoke - выключить его через 2 секунды.
// где то в момент получения урона и включения неуязвимости
godMode = true;
Invoke("OffGodMode",2f);
 ////

void OffGodMode()
{
  godMode  = false;
}
Ответ написан
Комментировать
twobomb
@twobomb
Думай! Например при получении урона запоминать время текущее, а при следующем получении урона проверять текущее время с запомненым и если не прошло 2 сек не наносить урон...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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