前言
商城中已有不少rvo2相关插件或者代码出售,但没有一款是基于WebAssembly。
因此本插件主要基于rvo2库进行改造编译而来,省去大家编译、接入等基础复杂步骤。
但WebAssembly也有其致命缺点,就是不支持iOS原生应用,注意避坑。
商城链接【已上架】
rvo2-wasm
使用方法参照商城描述,也有示例页面
示例视频
优势
1、基于WebAssembly,性能有保障
2、动态删除/添加Agent和Obstacle
3、直接引用引入插件中的Agent组件、Box和Polygon障碍组件使用,不污染项目源码
rvo2改造
Agent&Obstacle动态删除
了解过rvo2库都应该知道,其不支持动态删除Agent和Obstacle。
rvo2-wasm支持动态删除,为更多玩法提供可能性。
Roadmap寻路
rvo2在处理Agent之间的避障是毫无问题的,但是绕过静态障碍(尤其是大面积障碍)并不完美,有时甚至卡住不移动。好在rvo2库的example中有roadmap这一思路。
插件会根据Obstacle组件挂载的Collider自动生成其避障roadmap,在有障碍阻挡时,Agent通过roadmap检索最短路径,先向roadmap中的位置移动,如此直至无障碍阻挡。