通常场景中物体设置为static或Navigation Static后,打开Navigation使用默认设置烘焙NavMesh,模型顶部和底部会出现蓝色网格,但其中有部分属于不可能到达区域,如下图
本文介绍两种可去掉NavMesh中不需要网格的方法:
方法一:设置去掉网格对应模型为不可行走区域,并调整模型使其不与地面重合
1.选中要去掉网格靠近模型
2.选择Navigation->Object,设置Navigation Area为Not Walkable
3.选择Navigation->Bake,点击Bake按钮重新烘焙
烘焙完成后可看到cube上方蓝色网格已消失,但此时cube下方还有蓝色网格,如下图
要去掉cube下方蓝色网格,则可以把cube向上移动,使其与地面不重合,再烘焙,如下图
烘焙完成如下图
方法二:通过NavMesh Cleaner插件去掉不需要网格
插件链接:NavMesh Cleaner | Behavior AI | Unity Asset Store
使用方法如下
1.在场景中任意物体上添加NavMeshCleaner脚本组件
2.然后按住键盘Ctrl键,鼠标左键点击Scene中蓝色网格(可行走区域),之后场景中会出现绿色标记,并且NavMeshCleaner脚本组件的Walkable Point会自动记录点击点,如下图
3.点击NavMeshCleaner脚本组件上的Calculate按钮,然后确认场景中粉紫色区域是否为要去掉网格
4.若需要重新修改,则点击NavMeshCleaner脚本组件上的Reset WalkablePoints和Reset Mesh按钮重置后,重新进行2.3步骤;若不需要修改则选择Navigation->Bake,点击Bake按钮重新烘焙,即可得到想要的导航网格,如下图
为了方便观察可,通过NavMeshCleaner脚本组件上的Hide Mesh/Show Mesh按钮,控制Scene中粉紫色网格的显示与隐藏。