A星寻路算法_第三章
回到外部调用的,逻辑节点根类PERoot,其中声明的变量,一个静态的单例Instance,在Start开始函数,设置为this就好; xy坐标的Count,分别是生成的节点,纵横最大数目,目前自定义为,20和10; blockObject就是设定,单个寻路节点的预制体类,这里设置是cell预制体,而blockRoot就是单个寻路节点,生成之后,SetParent设定的父节点; PathFindMode模式,是用于后续解析的,switch切换,不同的寻路逻辑; searchIntervel是后续解析的,寻路Task延迟时间设定; OpEnum是不同的操作逻辑阶段,是通过HideInInspector标签,隐藏起来,参考Unity中 HideInInspector和SerializeField的用法; 还有俩开始和结束,逻辑节点,和BlockMap逻辑地图,用于统一管理所有逻辑节点; 开始函数,就是完成各个的初始化;
运行,表现正常
使用异步async的OnClickBlockItem方法,调用节点地图的UpdateMapData函数,更新邻近节点集合; 然后,通过switch,完成寻路逻辑的选型;
后续逻辑,就是调用节点地图的Task任务CalcPath,完成寻路的核心逻辑处理; 再拿到游戏的真实运行时间realtimeSinceStartup,计算得到,不同的mode寻路模式,所使用消耗的时间,对比效率;
Update更新函数,就是不同的按键,触发不一样的逻辑,用于重复测试
运行,点击可以切换,不同的寻路逻辑mode模式
广度优先搜索算法
消耗时间log
换成A星
其余模式的测试,同理