人工智能AI 在Unity中的实现

NavMesh 入门知识(2)

2016-12-18  本文已影响80人  LeoYangXD

Obstacle

障碍物,在NavMesh系统中我们是不能用Collider来做一个障碍物,因为角色在导航网格中的运动是根据导航点来进行移动的,所以我们要用Mesh Obstacle这个组件来制作障碍物

Paste_Image.png 若水GIF截图_2016年12月18日21点18分45秒.gif
![Paste_Image.png](http://upload-
Paste_Image.png

第二张图是我的烘焙的导航网格,在浅蓝色的区域都是可以走动的,第一张图的那个白色的Cube是我设置的目标点,按照常理来说,假如物体在被障碍物阻挡以后,他会计算出一条新的路线去到达目标点,(比如从桥下边)但是角色并没有这样做,而是一直卡在障碍物前边。这是因为导航网格中,没有这个障碍物的信息,所以角色的自动寻路系统会一直以为这个路线是最短的路线,但是这个障碍物因为有obscale这个组件所以会阻挡角色向前移动。所以就出现了第一张图的现象。

Paste_Image.png

分层寻路

Paste_Image.png

这个是在角色自身到带的NavMeshAgent组件里AreaMask,角色都可以在导航网格中的哪些区域移动
通过这三点的调节,我们就可以来实现分层导航。

注意

当我们每次要对导航网格修改时,每次修改以后一定要点一下Bake这个按钮,然后他才会自动烘培

上一篇 下一篇

猜你喜欢

热点阅读