本方案的实现所依赖的理论基础我在“游戏六边形地图方案及推论”中进行了说明及部分推导,方案主要针对地图存储及寻路进行实现,并尽力实现最快的寻路速度,因此部分代码为了效率而牺牲了部分可读性,我会尽力在代码中添加备注以说明。
本库使用Unity实现,但因为核心是六边形地图的数据存储与寻路逻辑,且所用C#语法均为基本语法,因此除显示demo外不受unity版本的限制。
本项目代码,实现了六边形地图的数据存储,并以此为基础利用A星算法实现寻路逻辑。
所有代码存储于Assets/Scripts/HexagonMap路径下,通过生成Map
实例,并传入地图的二维尺寸,即可生成地图数据,并在内部实现寻路逻辑。