1.打开Navigation窗口,选中地面和静止物体(比如房子,草丛,墙等),在Navigation窗口下的Object勾选Navigaton Static,Navigation Area勾选Not Walkable;在窗口下的Bake点击bake烘焙。
2.点击需要导航寻址的物体(比如敌人【自动寻找玩家】),添加Nav Mesh Agent组件。
3.在需要导航寻址的物体挂载一个脚本,脚本代码如下
public NavMeshAgent nav;//导航组件
public Transform target;//追击目标
private void Update()
{
this.nav.SetDestination(this.target.position);//设置更新目标
}
扩展:鼠标点击主角寻路(脚本在主角身上)
public NavMeshAgent nav;//导航组件
private void Update()
{
if(Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//发射一条射线从摄像机开始,到鼠标点击的位置
RaycastHit rayhit;
if(Physics.Raycast(ray,out rayhit))//射线碰到的物体信息给予rayhit
{
if(rayhit.transform.name=="Plane")//判断是不是点击到地面
{
nav.SetDestination(rayhit.point);
}
}
}
}
4.碰到动态障碍物,把会动的障碍物的Navigation static取消勾选,勾选Nothing,在窗口下的Bake点击bake烘焙。然后点击动态障碍物,添加组件Nav Mesh Obstacle。