这个是之前设计的,稍微改了下,为了便于修改,大部分参数都设定为公开的,可以根据个人需求自行修改。
//自动寻路工具
//设计目的:传入一条路径,会循环查找路径
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FindWay : MonoBehaviour {
public int MoveSpeed = 10;
private bool isWalk = false;//开启寻路
public List<Transform> theMove = new List<Transform>();
private List<Vector3> movepath = new List<Vector3>();//路径
private int signDot = 0;//移动标记点
// Use this for initialization
void Start () {
for (var index = 0; index < theMove.Count; index++)
{
movepath.Add(theMove[index].position);
}
isWalk = true ;
}
private void Update ()
{
if (isWalk == true)
{
LookPath();
}
}
private void LookPath()
{
bool isMove = false;
if (signDot < movepath.Count)
{
if (Move(movepath[signDot]) == true)
{
signDot++;
}
}
else
{
// Debug.Log("重置寻路");
signDot = 0;
}
}
private bool Move(Vector3 movetarget)
{
if (transform.position != movetarget)
{
transform.position = Vector3.MoveTowards(transform.position, movetarget, MoveSpeed * Time.deltaTime);
transform.LookAt(movetarget);
}
else
{
// Debug.Log("抵达");
return true;
}
return false;
}
}