using UnityEngine;
using System.Collections;
using System;
public class NavigationFixedPath : MonoBehaviour {
GameObject[] pathPoints;
//记录下一个路点
int nextPathPointIndex = 1;
// Use this for initialization
void Start () {
//寻找tag值相同的的对象构成数组
pathPoints = GameObject.FindGameObjectsWithTag("Path01");
//Array.Reverse(pathPoints);
//对数组进行排序上方也是,下方为lamda排序
Array.Sort(pathPoints, (x, y) => { return x.gameObject.name.CompareTo(y.gameObject.name); });
transform.position = pathPoints[0].transform.position;
transform.forward = pathPoints[nextPathPointIndex].transform.position - transform.position;
}
// Update is called once per frame
void Update () {
if (Vector3.Distance(pathPoints[nextPathPointIndex].transform.position, transform.position) < 0.1f)
{
if (nextPathPointIndex != pathPoints.Length - 1)
{
nextPathPointIndex++;
}
//到达最后一点时
if (Vector3.Distance(pathPoints[pathPoints.Length - 1].transform.position, transform.position) < 0.1f)
{
transform.position = pathPoints[pathPoints.Length - 1].transform.position;
return;
}
//控制敌人的方向
transform.forward = pathPoints[nextPathPointIndex].transform.position - transform.position;
}
//敌人移动
transform.Translate(Vector3.forward * 5 * Time.deltaTime, Space.Self);
}
}
```