最近被寻路给搞蒙了,由于我想做汽车的寻路,而且汽车速度什么的都定义好了,而unity自带的组件nav mesh agent自带了一些速度之类的值,搞得我很不开心,虽然值可以设为0,但后来还是发现有很多问题。不过,这个自带的功能还是很不错,可能不适合汽车,只对人比较友好,本着学习的态度我认真研究了一下。
我们都知道,unity常见的寻路算法有:Astar寻路,自带寻路navmesh,点寻路等等。A*寻路就不说了,早期一般都是用它,算法插件网上都有。unity自带的这个寻路很有意思,首先选择window->navigation,然后可以看到检视板后面多了一个,选择你要烘培的静态物体,一般是地面,道路等等。勾选navigation static,烘培bake意思是被你选择的地方是可通行的,当然注意下面navigation area,里面有walkable,还有not walkable。勾选完之后就可以点击bake了,还有一些参数啥的,可以在API上去查查,可以多次bake哦。成功之后你可通行区域变成这个样子,可以看到变成了浅蓝色。
然后你需要在寻路者的身上挂一个Nev mesh agent组