Nav Mesh Obstacle组件的使用情况:我们在使用NavMesh导航的时候,都会把静止的物体,勾上Static,然后烘焙一张NavMesh,导航网格就能知道行走区域。但是如果出现动态的障碍,比如一堵墙原本不能通过,现在又需要通过,这时候就需要用到Nav Mesh Obstacle,这里可能会想到空气墙,但是空气墙使用的是Rigidbody,如果速度过快可能就会出现穿过的问题。
Nav Mesh Obstacle组件不需要依赖于cube等模型,直接挂载到transform上就能使用,下面记录一下组件的几个属性。
Shape:障碍物形状
Center:障碍物中性点
Size:障碍物大小
Carve:勾选则开始雕刻NavMesh,并且使用下面属性。
Move Threshold:移动阈值。从当前位置,移动多远距离,才满足雕刻条件。(例如:填写10,那么移动1-9的距离,NavMesh都不会重新烘焙)
Time To Stationary: 静止时间。移动之后,需要等待多长时间,这个障碍物才能算是静止物体,这个属性需要和下一条属性一起使用。
Carve Only Stationary:仅雕刻静止物体。这里指的静止物体,就是上一条属性中的静止物体。如果不勾选就表示不仅仅雕刻静止物体,意味着只要移动阈值满足,每帧都会雕刻障碍物NavMesh。
总结:
Carve Only Stationary属性不勾选,那么静止时间没用,组件会每帧雕刻,消耗过大,但是移动阈值正常工作。文章来源:https://www.toymoban.com/news/detail-716180.html
Carve Only Stationary属性勾选,静止时间生效。表示障碍物移动之后,等待多长时间,变为静止物体,然后去判断一次移动阈值,如果移动阈值不满足,同样不会生效到NavMesh,所以这里就是这个组件自己掌握性能优化的地方。文章来源地址https://www.toymoban.com/news/detail-716180.html
到了这里,关于Unity NavMeshObstacle组件详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!