在使用导航网格前,应先设置项目导航系统支持的导航代理者(Agents)
在项目设置中,找到导航系统页面
DirtyAreasUpdateFreq 表示导航网格变化时,检测变化并更新的频率。
这里可以设置导航系统的一些参数,包括是否允许客户端导航, 支持的导航代理者(Agents)
根据支持的导航代理者类型,导航网格会生成不同的RecastNavMash,以支持不同代理者。
代理者的参数如下
Name:就是自定义用的类型名
Color:控制生成的绘制导航网格的颜色
Defalut Query Extent这个还不清楚是干什么的,一般不用管
Navigation Data class 一般不用动
Nav Agent Radius: 这个是代理者的半径, 通常与所需代理的Acter的pawnMovement类型组件中的Nav Movement 类别中设置同名变量大小一致的。
Nav Agent Height: 这个是代理者的高度, 通常与所需代理的Acter的pawnMovement类型组件中的Nav Movement 类别中设置同名变量大小一致的。
Nav Agent Step Height: 这个是代理者可以行走的台阶高度,通常与所需代理的Acter的pawnMovement类型组件中的Nav Movement 类别中设置同名变量大小一致的。
Nav walking Search Height Scale 暂时不清楚干什么的,一般不用管
preferred Nav Data 这个也不是很清楚干什么的。一般不用管
这几个好像设置了没用, 只有在Acter的pawnMovement类型组件中的Nav Movement 类别中设置同名变量设置了才有用。而且这几个参数并不仅仅只影响导航,而是对所有的movement都有用。这几个选项,只是用于说明可以进行什么行为,并不会在自动寻路时,自动实现跳跃,蹲下等。从高处跳下,可以使用Nav Link Proxy 来指导
然后,还要设置项目设置中的导航网格物体
这一页中,主要是设置导航网格在生成RecastNavMash时的一些通用设置。
display类型 重要是用来显示用的。
Generation 控制生成网格的一些设置。 主要的需要修改的设置如下
Agent Radius:在导航系统页签中,如果没有设置support Agents的化,会使用这里的设置
Agent Height:在导航系统页签中,如果没有设置support Agents的化,会使用这里的设置
Agent Max Height:在导航系统页签中,如果没有设置support Agents的化,会使用这里的设置,具体是什么,没有搞清楚。
Agent Max Slope: 生成RecastNavMash时,所允许的斜坡的最大角度。
Agent Max Step Height: 生成RecastNavMash时,所允许的最大楼梯高度。
这些可以在生成的RecastNavMash中重新设置。
这里有一个bug,就是在项目设置中修改的support Agents 的一些变化,必须重启项目才能更新。
在NavMeshBoundsVolume的Navigation选项中,选择需要支持的Supported Agents。则在生成导航网格时,会根据指定的类型,生成不同的导航网格(RecastNavMash)。
在导航网格中,可以指定不同的运行时网格生成机制。
第一种,是静态的。
第二种,在导航修改器(Nav Modifier)发生改变时动态修改。仅当Nav Modifier Volume 类型的物体发生改变时,才会更新网格。
第三种,是动态的修改。所有会影响导航的物体改变位置都会更新。