概述
Unity的NavMesh在生成寻路网格后,网格多边形是不规则的,要如何沿着直线前进呢?这就要用到拐角路径优化技术了,这使得物体始终朝着下一个可见拐角移动,直至到达目标。
思路
以一个简单的例子为例,假设已经知道起点与终点,并且得到了一条最短路径网格;
找到当前网格的一条边,使终点位于起点与该边两点的连线之间;
获取起点与下一个邻边两顶点的连线。若连线处于当前的左右边界之间,则更新为新的左、右边界,反之则维持原边界;
当某一临边的两条连线均在边界外,如图中为右侧,就将当前右边界点作为拐角点,将此拐角点作为新的起点,进行新的一轮寻路;