Najpierw musisz wiedzieć gdzie dana postać ma iść. Możesz użyć do tego NavMesha wbudowanego w Unity. Za pomocą NavMesha możesz "wypiec(bake)" powierzchnie po której może się poruszać postać.
Skoro wiemy gdzie możemy chodzić to potrzebujemy teraz znaleźć optymalną drogę do celu. Możesz użyć NavMesh Agenta, który to zrobi za Ciebie. Problem w tym, że trasa jest ustalana w czasie rzeczywistym, a ty chcesz mieć z góry ustaloną trasę.
Dlatego najlepiej pobrać informacje o powierzchni po której może poruszać się postać, a następnie znając punkt startowy i docelowy możemy wyznaczyć trasę. Jak?
Najlepiej użyć algorytmu heurystycznego, który nazywa się Algorytm A*
Tu nasz info o nim: Algorytm A*-Wiki
Teraz gdy masz juz trasę, to trzeba jeszcze ją narysować. Aby taka linia była dość przyjemna dla oka, najlepiej użyć krzywych Catmull– Rom, albo krzywych Beziera.