using UnityEngine;
public class AutoNav : MonoBehaviour {
/// <summary>
/// 物体身上的寻路组件
/// </summary>
private UnityEngine.AI.NavMeshAgent navMesh;
/// <summary>
/// 两个目标点
/// </summary>
public Transform target_1;
public Transform target_2;
/// <summary>
/// 计时器
/// </summary>
private float timeCount;
/// <summary>
/// 过time秒方块开始移动
/// </summary>
private float time = 3f;
/// <summary>
/// defaultState设置为第一次移动的状态,state1是往第二个物体移动的状态,state2是往第一个物体移动的状态
/// </summary>
private bool defaultState, state_1, state_2;
// Use this for initialization
void Start () {
// 获取组件
navMesh = GetComponent<UnityEngine.AI.NavMeshAgent>();
defaultState = true;
state_1 = state_2 = false;
}
// Update is called once per frame
void Update () {
if (defaultState)
{
timeCount += Time.deltaTime;
if (timeCount > time)
{
timeCount = 0f;
navMesh.SetDestination(target_1.position);
defaultState = false;
state_1 = true;
}
}
if(state_1)
{
if(Vector3.Distance(transform.position, target_1.position) <= 1f)
{
timeCount += Time.deltaTime;
if (timeCount > time)
{
timeCount = 0f;
navMesh.SetDestination(target_2.position);
state_1 = false;
state_2 = true;
}
}
}
if (state_2){
if (Vector3.Distance(transform.position, target_2.position) <= 1f)
{
timeCount += Time.deltaTime;
if (timeCount > time)
{
timeCount = 0f;
navMesh.SetDestination(target_1.position);
state_1 = true;
state_2 = false;
}
}
}
}
}
然后将这个脚本挂在到方块上