实现随机生成点避开障碍物

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

posted @ 2021-08-12 13:29  学徒007  阅读(243)  评论(0)    收藏  举报