实现随机生成点避开障碍物
1.目的
实现在一个有很多障碍物的地图中随机找出生点,需要避开障碍物
2.解决途径
NavMeshHit hit;
bool resoultBool = NavMesh.SamplePosition(GetRandomPos(), out hit, 1.2f, NavMesh.AllAreas); // 其中GetRandomPos() 是自定义的一个方法,此处参数为找可用点使用的原始点位
3.补充 - 烘焙物品顶部网格问题
在使用Navmesh Surface烘焙导航网格的时候,很多时候有些物品上面是不能走的,即使烘焙了导航网格,如下图:

这些导航对于程序来说可能是个问题,因为它本身不可到达,在寻找导航点的时候,它会增加程序寻点的成本,一般我们需要手动配置剔除。
剔除的方法:
选中顶部不需要导航风格的物品
添加NavmeshModifier
勾选:Override Area
Area Type选择:Not Walkable
重新烘焙一下即可

希望能帮助到你
————————————————
版权声明:本文为CSDN博主「Kelvin7_Feng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fwb330198372/article/details/103039748

浙公网安备 33010602011771号