Unity NavMeshAgent 之 快速实现点击任意点寻路
1、打开Unity,新建一个空工程,具体如下图

2、在场景中新建一个“Cube”和“Plane”,并且调整好相机视角,便于观察,然后设置“Plane”为静态“Static”,具体如下图

3、选中“Plane”,然后通过“Window”-“Navigation”,打开“Navigation”窗口,在“Navigation”里选中“Bake”面板,点击右下角进行“Bake”烘焙,如果没有保存场景,会提示保存,烘焙完之后,“Plane”上会有蓝色图块,工程里面会多一个文件夹保存烘焙结果,具体如下图


4、选中“Cube”,添加一个“NavMeshAgent”组件,具体如下图

5、在工程中新建一个脚本“NavTest”,然后打开进行脚本编辑,具体如下图

6、在打开的“NavTest”脚本上编辑代码,首先设置“NavMeshAgent”导航代理变量,然后获得“Cube”上的导航代理赋给变量,最后在Update中,实时获取鼠标的点击,来设置导航代理的寻路目标,具体如下图

7、“NavTest”脚本具体代码如下:
using UnityEngine;
using UnityEngine.AI;
public class NavTest : MonoBehaviour {
private NavMeshAgent agent;
// Use this for initialization
void Start () {
agent = GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
RaycastHit hitInfo;
if (Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hitInfo)) {
agent.SetDestination(hitInfo.point);
}
}
}
}
8、脚本编译正确后,回到Unity界面,把脚本“NavTest”赋给“Cube”,具体如下图

9、运行场景,鼠标点击“Plane”任意一点,“Cube”都会自动导航寻路过去,具体如下图

10、到此,《Unity NavMeshAgent 之 快速实现点击任意点寻路》讲解结束,谢谢