A*Pathfinding Project学习之【2】插件的使用

来源:互联网 发布:道亨软件使用说明 编辑:程序博客网 时间:2024/05/29 18:25

1.导航配置

首先,在场景中创建一个空对象,例如例子里的A*,在该空对象上挂AStarPath脚本。

然后,点击AstarPath的Inspector上的Add New Graph,添加NavMeshGraph,即添加导航网格的寻路模式。注意:导航网格的寻路模式需要一个Mesh,拖拽到Source Mesh上,其他默认即可。如果需要自己生成Mesh资源文件,看这篇文章

最后,勾选上Show Graphs,点击Scan生成导航网格和由导航网格生成的BBTree的图。

2.target配置

脚本:Seeker,FunnelModifier,AIPath

2.1Seeker

功能:监听寻路完成事件onPathDelegate和onPartialPathDelegate。

主要方法:OnPathComplete和RunModifiers(注意该方法非常重要,对路径点进行修正,将Graph的点转换为NavMesh的Triangle的Vertex)

2.2FunnelModifier

功能:修正路径点

主要方法:Apply,RunFunnel

在Apply中用到了TriangleMeshNode,即构成NavMesh的节点,每个节点有3个定点Vertex,在调用它的GetPortal方法,生成Funnel的Left和Right节点。

RunFunnel方法将上一步生成的Left和Right节点通过Funnel(漏斗)算法得到最优的路径点。

2.3AIPath

功能:驱动target沿路径前进

主要方法:Update,CalculateVelocity。

通过CalculateVelocity计算移动方向,在Update里调用CharacterController的SimpleMove移动target

0 0