搭建一个测试场景,放了一个摄像机(Main Camera),一个充当地面的面片(Plane),一个充当阻碍物(Obstacles),一个充当玩家的球体(Player)和一个寻路目标点物体(Target)。如图
然后我们选中地面Plane,点击window下拉列表中可以看到Navgation,点击打开寻路生成界面,如图
然后点击Bake生成地面寻路网格,然后选择遮挡层,通用生成不可行走的网格如图
然后在Player对象上添加寻路组件这样,准备工作做完了,我们来写个脚本测试一一下,创建一个Player脚本。编写如下using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour {
//引用寻路网格组件
private NavMeshAgent navMesh;
//引用寻路目标对象组件
public Transform target;
// Use this for initialization
void Start () {
//获取寻路网格组件
navMesh = GetComponent<NavMeshAgent>();
//设置寻路目标
navMesh.SetDestination(target.position);
}
// Update is called once per frame
void Update () {
}
}保存脚本,然后绑定到Player对象上,运行测试,最终效果应该是小球会绕过阻碍物(Obstacles)移动到Target圆柱模型位置地方去