В упрощенном виде.Вешаем на наш обьект,который двигается по вейпойнтам.В public переменные засовываем вейпойнты.
using UnityEngine;
using System.Collections;
public class TargetList : MonoBehaviour
{
public Transform point_0;
public Transform point_1;
public Transform point_2;
public Transform point_3;
public Transform point_4;
public Transform point_5;
Transform[] all_Point=new Transform[6];
private Vector3 target_Pos;
private int i = 0;
private float speed_move = 30f;
private bool stop_Move=false;
void Start()
{
all_Point[0] = point_0;
all_Point[1] = point_1;
all_Point[2] = point_2;
all_Point[3] = point_3;
all_Point[4] = point_4;
all_Point[5] = point_5;
}
void Update()
{
target_Pos = all_Point[i].transform.position;
transform.Translate(Vector3.Normalize(target_Pos - transform.position)*Time.deltaTime*speed_move);
float distans = Vector3.Distance(target_Pos, transform.position);
if (distans < 0.5f)
{
if (i < all_Point.Length - 1)
{
i++;
}
else
{
i = 0;
}
}
}
}