Реализация скорости атаки...

Программирование на Юнити.

Реализация скорости атаки...

Сообщение vave 19 мар 2017, 12:53

Есть мобы - спавнятся и бегут друг другу навстречу...

у них есть свои статы (хп урон и тд), есть скорость атаки...
в менеджеры поведения отслеживаются все варианты развития событий - все вроде бы работает но - есть InvokeRepeating("Сам инвок",0, npcStats.attackSpeed);
в инвоке есть проверка всех нужных условий, таких как есть вообще объект на сцене(или удален) жив ли атакер и жив ли атакуемый (есть в статусе моба )
пока работает инвок - все методы поведения кроме самой атаки игнорятся...
собственно в самом мобе есть методы нанесения урона ,получения урона при нулевом и отрицательном ХП - смерть и удаление со сцены и тд...
если даже противников с каждой стороны несколько и кто-то получает урон от нескольких сразу - во время боя расчет идет правильно(вроде)...
НО: после смерти любого - инвое еще работает какое-то время (кадров 10-15);


не могу понят в чем ошибка (консоль дебаг молчат как шпийоны)
Мб просто логика не правильная - или лучше корутины использовать или еще чтото - например привязать скорость атаки к фпс и бить например каждый нужный кадр
(что-то типа:)

int attackSpeed = 10;
int currentAttackFrame =0;
...
void update()
{

if(currentAttackFrame ==attackSpeed)
attackFunc();
else
currentAttackFrame++;
}

Буду рад любым идеям и примерам реализации..
vave
UNец
 
Сообщения: 17
Зарегистрирован: 13 мар 2017, 06:00

Re: Реализация скорости атаки...

Сообщение Lolipop 19 мар 2017, 14:34

ну дк можно сделать так:
Синтаксис:
Используется csharp
float timer;
float Cooldown;

//в апдейте
timer += Time.deltaTime;
if (timer > Cooldown){
Attack();
timer = 0;
}
ЭЩКЕРЕ!
Аватара пользователя
Lolipop
UNIт
 
Сообщения: 141
Зарегистрирован: 05 окт 2016, 14:21


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12