寻路算法非常重要,因为绝大部分的游戏都需要用到,比如RPG游戏中的任务系统,任务点击任务后需要自动寻路到目标位置,再比如Moba游戏,我们点击地图,英雄就会自动寻路到点击的地方。这就是寻路算法的作用了。那么怎么实现寻路算法呢?现在比较流行的就有A*。其实unity有内置的寻路算法,那就是导航网格组件。有了它,我们就可以进行寻路了。
首先我们要用unity的导航网格组件,我们就需要烘焙场景,然后根据烘焙出来的数据,才能进行具体寻路,比如什么地方可以走,什么地方不能走,爬坡的最大高度等等,所以你怎么烘焙你的场景,就会出现怎么样的寻路地图。然后我们让需要寻路的物体挂载一个寻路组件就可以了。这就是原理了。好,我们先来看看怎么烘焙场景。
当你看到你的场景出现浅蓝色的区域时,那么你就成功的烘焙了你的场景了,浅蓝色区域就是可以行走的区域了。拥有寻路组件的物体可以在这区域自由移动。OK,当然由于我的场景很简单,所以没有其他复杂的东西设定,所以也就没有多余的区域了。
但是这是特效情况,就特殊对待了,要知道导航网格不是这么简单的。然后我们烘焙好了场景,需要让物体来寻路了。首先创建一个物体,然后给物体挂载寻路组件NavMeshAgent组件,然后调整下参数就可以写代码了。
就这一句代码,我们就能实现我们想要的寻路效果,它会从起点开始,一直寻路直到走到目标位置。
这就是寻路组件的介绍
网友评论