Решение
Я бы расставил контрольные маршрутные точки, добавил к ним коллайдеры в виде триггеров. На них накинуть небольшой скрипт, говорящий какое действие нужно сделать, что бы попасть в следующую маршрутную точку(к примеру повернуть налево и продолжать идти). Когда NPC вступает с ним в коллизию(OnTriggerEnter), берет из него необходимые параметры для продолжения движения. Я так себе реализовывал.
Это если линейно и по кругу. А если рандомно передвижение по территории, то все с теми же контрольным точками, только нужно получить их все, выбрать случайную точку и обходом по графу идти до этой точки. Как только достиг, выбрал случайную следующую точку и пошел дальше.
Объяснение:
var
n,a,sum,pr: integer;
begin
write('N: '); readln(n);
sum:=0; pr:=1;
repeat
readln(a);
if a mod 2 = 0 then
begin
sum:=sum+a;
if (a mod 10 = 2) and (a mod 100 <> 22) then
pr:=pr*a;
end;
dec(n);
until n=0;
if sum <> 0 then writeln('Sum: ',sum)
else writeln('Error sum');
if pr <> 1 then writeln('Pr: ',pr)
else writeln('Error pr');
end.