Unity3D waypoint pathfinding system
Welcome to my blog www.luzexi.com
使用Dotween插件做物体移动模块
路点寻路系统
路点系统有两种情况
1,固定路线,路线确定后不会变
2,路点寻路,路线随环境变化寻找不同的路线
固定路线分两种
1,一种可以认为是路点寻路的孤岛,只有一条线的路线
2,另一种为指定节点的路线,也可以称为指定路线
路点对于寻路来说的优缺点
1,可以通过手动了解来有效定制特殊路径,通过路点使用A星寻路,得到从起点到目的地的路径
2,路点寻路的优点是便捷,包括生成,编辑和使用,缺点是难以创建阻挡区域。
3,也就是说可以成寻路却难以判断某点是否是有阻挡物。这个可以用其他方式避免,比如用碰撞检测避免。
路点编辑基本操作
1,生成节点,包括接口和手动编辑
2,修改节点位置,包括接口和手动编辑
3,连接节点,包括接口和手动编辑
4,删除节点,包括接口和手动编辑
5,导出节点,包括手动和自动修复旧数据
6,导入节点,包括接口和手动编辑
路点系统功能点:
1,可任意组成节点连线
2,可合并拆分任意组合
3,编辑器和游戏分两套逻辑,编辑器中使用GameObject做节点便于操作,游戏中则无GameObject(节省效率),纯内存数据运作。
4,每个节点都有阻碍力值,代表通过这个节点需要受到多少阻碍
5,导入导出数据分两套,一套为序列化文件,一套为二进制文件 -- 因为有环,所以无法序列化
6,移动物体的路径Catmull-Rom平滑曲线,xyz角度跟随,循环等功能。
移动物体分两套,一套是使用节点数据移动,一套是使用场景中的GameObject为移动节点,
两套逻辑相同,但是第一套没有GameObject节点,第二套有GameObject节点,效率差了点,但编辑方便顺手。
7,TODO,基于节点与连接的A*寻路
8,TODO,自动生成整个场景的网格节点