Unity中Box形状的NavMesh Obstacle无法正常工作求助
排查与修复步骤
- 检查NavMesh体素尺寸匹配
NavMesh烘焙设置里的Voxel Size如果过大,扁平的水平Box会被体素忽略。确保Box的每个维度至少覆盖1-2个体素,可尝试调小Voxel Size后重新烘焙。 - 确认Carve设置
务必勾选Box形状Obstacle的Carve选项,若障碍物是动态的,不要勾选Carve Only Stationary。Capsule可能默认参数适配,但Box需要手动确认该设置。 - 对齐Transform与Render Mesh
你使用Render Meshes作为几何图形,要保证Box的Center和Size与Render Mesh的包围盒完全对齐。若Mesh原点偏移,会导致Obstacle碰撞范围不匹配,无法正确镂空。 - 检查层设置
确认Box Obstacle所在层被包含在NavMesh烘焙的Include Layers中,避免因层过滤导致不参与NavMesh计算。
快速验证方法
- 临时调大Box的高度(超过当前
Voxel Size),重新烘焙,若能生成镂空则说明是体素尺寸问题。 - 给Render Mesh添加Box Collider,将NavMesh Obstacle的几何图形改为
Collider测试,若生效则是Render Mesh识别问题。 - 调整
Carve Radius参数(Box形状下该参数控制镂空边缘平滑度),避免因半径过小导致镂空不生效。
内容的提问来源于stack exchange,提问作者mukul
相关产品推荐
相关产品推荐

