调研了下,大概有两个插件可以用于Unity2D:
1.PolyNav - 2D Pathfinding
2.Navigation2D Pathfinding
当然,这些插件包括unity自带的Navmesh,还有那个著名的A start pathfind 插件,都是只用于客户端,不能用于服务器。根据AssetStore上的介绍,前者比较早,从unity5就支持了,后者对unity的版本要求是Unity2017后的版本。今天介绍的是后者。
简单使用后,总体觉得Navigation还是比较好用。大概浏览下它的代码,应该是基于Unity原生的NavMash实现,把3D变成2D。看来核心还是原生的,各方面比较可靠。功能上支持静态的阻挡物和动态的阻挡物。但是有个核心组件NavMeshAgent2D用了少量的Linq,先介绍怎么使用,再介绍怎么修改这个组件去Linq。使用该插件文档,以及修改后的去Linq组件下载链接:NavMesh2D去Linq修改和说明文档
一、使用
静态阻挡物,只需要设置好原生的包围盒并设置成面板上设置Static即可。动态的阻挡物不用设置成Static,但包围盒还是需要设置,另外需要添加一个组件NavMeshObstacle2D下面是静态的阻挡物和动态的阻挡物添加组件后的示意图。