
Nav Mesh Agent组件可以附加到游戏中的移动角色,以允许它使用NavMesh导航场景,只需要将组件附加到它,就可以进一步完成了。
如果你还不知道如何设置导航网格,可以参阅此篇文章:设置导航网格。

附加之后,接着咋们创建一个脚本,让agents在点击播放时随机移动到一个路径点。
如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class AI : MonoBehaviour
{
[SerializeField] private Transform[] _wayPoints;
private NavMeshAgent _agent;
// Start is called before the first frame update
void Start()
{
_agent = GetComponent<NavMeshAgent>();
_agent. destination = _wayPoints[Random.Range(0,_wayPoints.Length)].transform.position;
}
}
在这里,只是获得对导航网格agents代理的引用,并将其目的地设置为数组中的六个转换之一。
别落下了上面代码中的ai using语句哦。

但是,如果希望它移动到所有的导航路径点,尤其是按顺序移动怎么办?因此需要的是一个将存储当前点的变量和一个将检测是否在末尾的布尔值。
编写代码如下所示:
private void Update()
{
if ( _agent.remainingDistance<lf)
{
if (_currentPoint==_wayPoints.Length-1)
{
_reverse = true;
}
else if (_currentPoint==0)
{
_reverse = false;
}
if (_reverse==false)
{
_currentPoint++;
_agent.SetDestination(_wayPoints[_currentPoint].position);
}
else if (_reverse==true)
{
_currentPoint--;
_agent. SetDestination( _wayPoints[_currentPoint].position);
}
}
}
}
到这里就可以测试该项目的结果了。

…
以上是关于Nav Mesh Agent的全部内容,如果你有任何反馈,请随时在本页面下方留言。