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);
                
                 }

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