Страница 1 из 1

Произвольные методы типа Update

СообщениеДобавлено: 18 мар 2017, 05:14
vave
Всем привет. столкнулся с проблемой при написании логики для мобов.. всю логику приходится пихать в Update и каждый кадр идет проверка кучи условий (на данный момент больше 7)....
если мобов больше 15-20 - начинаются дикие тормоза... отсюда вопрос - можно ли сделать несколько методов типа Update, например UpdateIfSearchEnemy, UpdateIfAgro, UpdateIfInCombat...
чтобы при вхождении в кадр - выполнялся только нужный Update пока не измениться условие... нет врага - каждый кадр запускаем UpdateIfSearchEnemy и если в этом апдейте нашли врага, в следующем кадре запутстим UpdateIfAgro и бежим к врагу пока не приблизимся на дистанцию атаки, если в бою то UpdateIfInCombat и он выполняется всегда пока враг жив...
иными словами не пихать все проверки в Update а разбить в зависимости от состояния

Re: Произвольные методы типа Update

СообщениеДобавлено: 18 мар 2017, 07:09
DbIMok
Все можно, но ваша проблема не в этом. Используйте Profiler чтобы узнать причину.

Re: Произвольные методы типа Update

СообщениеДобавлено: 18 мар 2017, 12:11
Xtir
можно сделать enum состояний, например как-то так

Синтаксис:
Используется csharp
void Update()
{
        switch(status)
        {
        case Status.searchTarget:
                //писк цели
                if(цель найдена)
                {
                        status = Status.goToTarget;
                }
                break;
        case Status.goToTarget:
                //идем к цели
                if(дистанция до цели < дистанция атаки)
                {
                        status = Status.attackTarget;
                }
                break;
        case Status.attackTarget:
                //атакуем цель
                break;
        }
}
 


как-то так, не знаю так вообще делается, или это считается не правильный метод?

Re: Произвольные методы типа Update

СообщениеДобавлено: 18 мар 2017, 15:13
Tolking
Если работает, то все верно...

Re: Произвольные методы типа Update

СообщениеДобавлено: 19 мар 2017, 20:17
Левш@
vave писал(а):всю логику приходится пихать в Update и каждый кадр идет проверка кучи условий (на данный момент больше 7)....
если мобов больше 15-20 - начинаются дикие тормоза..

Сильно сомневаюсь что ваши тормоза вызывают иф-ы...