版本:Unity 6 (6000.0)
语言英语
  • C#

NavMeshObstacle.carving

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有的提交,但我们确实会阅读用户提出的每一条建议的更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您抽时间帮助我们提高 Unity 文档的质量。

关闭

取消

public bool carving;

说明

此障碍物是否应该在网格导航中切出一块区域。

启用时,这会通过切出一个孔洞来更改网格导航。孔洞的形状基于 NavMeshObstacle 上设置的大小和形状以及网格导航烘焙设置中的半径和高度。

当障碍物移动时,切出的孔洞也会移动,但为了降低 CPU 负载,只有在必要时才会重新计算孔洞。重新计算逻辑有两个选项:1) 在静止时切除,2) 在移动时切除。

“在静止时切除”是默认行为,当 carveOnlyStationary 设置为 true 时使用。当障碍物移动超过 carvingMoveThreshold 设置的距离时,障碍物被视为正在移动。此时,切出的孔洞将被移除。当障碍物停止移动,并且已静止超过 carvingTimeToStationary 秒时,障碍物将被视为静止,并且雕刻将再次更新。当障碍物正在移动时,智能体会使用避障功能来避开障碍物,但不会规划绕过障碍物的路径。此模式通常是性能方面最佳的选择。当游戏对象受物理控制(即箱子和桶)时,它是很好的匹配项。

carveOnlyStationary 设置为 false 时,则使用“在移动时切除”行为。在此模式中,当障碍物移动超过 carvingMoveThreshold 设置的距离时,切出的孔洞将更新。此模式非常适合大型、缓慢移动的障碍物,例如被步兵避开的坦克。