Решение
Я бы расставил контрольные маршрутные точки, добавил к ним коллайдеры в виде триггеров. На них накинуть небольшой скрипт, говорящий какое действие нужно сделать, что бы попасть в следующую маршрутную точку(к примеру повернуть налево и продолжать идти). Когда NPC вступает с ним в коллизию(OnTriggerEnter), берет из него необходимые параметры для продолжения движения. Я так себе реализовывал.
Это если линейно и по кругу. А если рандомно передвижение по территории, то все с теми же контрольным точками, только нужно получить их все, выбрать случайную точку и обходом по графу идти до этой точки. Как только достиг, выбрал случайную следующую точку и пошел дальше.
Объяснение:
первая часть
Program TZ5;
const
n=10;
var
a:array [1..n] of integer;
i,b:integer;
begin
for i:=1 to n do begin
a[i]:=i*2;
writeln(i,' ',a[i]);
end;
for i:=1 to n do
if (i mod 2)=0 then
a[i]:=0;
writeln('novuy massiv');
for i:=1 to n do
writeln(i,' ',a[i]);
readln;
end.