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);
}
把脚本绑定到人物上,运行场景后,人物就会自动绕开障碍物走到目的地。