Давайте представим, что у меня есть существо, которое движется:
bool pathFound = false;
void Update()
{
if(!pathFound)
{
//Find a destination point
pathFound = true;
}
//Move creature to point
if(Creature reached the point)
{
pathFound = false;
}
}
Так что движение зависит от переменной, созданной вне функции.
Если я хочу добавить точно такое же второе существо, кодсобирается быть дублированным:
bool pathFound1 = false;
bool pathFound2 = false;
void Update()
{
if(!pathFound1)
{
//Find a destination point 1
pathFound1 = true;
}
//Move creature 1 to point 1
if(Creature reached the point 1)
{
pathFound1 = false;
}
if(!pathFound2)
{
//Find a destination point 2
pathFound2 = true;
}
//Move creature 2 to point 2
if(Creature2 reached the point 2)
{
pathFound2 = false;
}
}
Что выглядит очень странным и неэффективным для меня.И даже если я перенесу все эти шаги в функцию, должны быть созданы две почти одинаковые функции с разницей в pathFound1 и pathFound2.
Поэтому мне интересно, как добиться того же результата с более качественным кодом?