需求背景
最近着手了一个使用Unity构建的2D手机游戏项目,项目服务端需要设计简单的AI,AI的基础是寻路,寻路依赖地图数据。
问题分析
Unity的3d开发环境中,原生自带了Navigation的组件,该组件可以快速的在Unity3D项目中生成NavMesh数据,并且同时支持Unity内置的寻路功能。但是对于Unity2D项目并没有类似的功能,所以得要自己想办法、造轮子。
需求也很明确:
1、能导出0/1方格地图数据提供给A*寻路,0表示区域可行走,1表示区域有障碍;(文末会提到为何不沿用NavMesh数据格式)
2、对于地图的变更,仅修改参数,不用修改代码,一键操作生成需要的地图数据文件;
3、能够兼容一些需求变更,比如击碎物,机关门之类;