Решение
Я бы расставил контрольные маршрутные точки, добавил к ним коллайдеры в виде триггеров. На них накинуть небольшой скрипт, говорящий какое действие нужно сделать, что бы попасть в следующую маршрутную точку(к примеру повернуть налево и продолжать идти). Когда NPC вступает с ним в коллизию(OnTriggerEnter), берет из него необходимые параметры для продолжения движения. Я так себе реализовывал.
Это если линейно и по кругу. А если рандомно передвижение по территории, то все с теми же контрольным точками, только нужно получить их все, выбрать случайную точку и обходом по графу идти до этой точки. Как только достиг, выбрал случайную следующую точку и пошел дальше.
Объяснение:
#include <ctime>
#include <iostream>
using namespace std;
int main() {
int n=10, i, s=0;
int a[n];
srand(time(NULL));
cout<<"array:"<<endl;
for (i=0; i<n; i++)
{
a[i]=rand() % 50;
cout<<a[i]<<" ";
}
cout<<endl;
i = 1;
do {
a[i] = a[i]*a[i];
s += a[i];
i += 2;
} while (i<=n);
for (i=0; i<n; i++) cout<<a[i]<<" ";
cout<<endl;
cout << "s = " << s << endl;
return(0);
}
Пример:
array:
39 10 25 35 9 14 29 34 24 41
39 100 25 1225 9 196 29 1156 24 1681
s = 4358