Unity 已经集成好了自动寻路功能,使用起来非常简单。整体流程主要分为两步:先烘焙地图,再编写脚本。

烘焙导航网格

打开 Navigation 窗口进行配置。需要注意的是,只有带 Mesh Renderer 的物体才可以被添加到导航网格中。

把障碍物选择为 Not Walkable,设置完成后点击 Bake 按钮即可生成导航网格。

编写寻路脚本

新建脚本,代码如下:

    NavMeshAgent target;
    GameObject player;


 // Use this for initialization
 void Start () {
        target = GetComponent<NavMeshAgent>();
        player = GameObject.Find("Player");


 }

 // Update is called once per frame
 void Update () {

        if(target.enabled) target.SetDestination(player.GetComponent<Transform>().position);

 }

把脚本绑定到人物上,运行场景后,人物就会自动绕开障碍物走到目的地。