在使用导航网格前,应先设置项目导航系统支持的导航代理者(Agents)

在项目设置中,找到导航系统页面

UE4 运行python ue4 运行 显示网格_Max

DirtyAreasUpdateFreq 表示导航网格变化时,检测变化并更新的频率。

 

这里可以设置导航系统的一些参数,包括是否允许客户端导航, 支持的导航代理者(Agents)

根据支持的导航代理者类型,导航网格会生成不同的RecastNavMash,以支持不同代理者。

代理者的参数如下

UE4 运行python ue4 运行 显示网格_项目设置_02

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 这个也不是很清楚干什么的。一般不用管

UE4 运行python ue4 运行 显示网格_项目设置_03

这几个好像设置了没用, 只有在Acter的pawnMovement类型组件中的Nav Movement 类别中设置同名变量设置了才有用。而且这几个参数并不仅仅只影响导航,而是对所有的movement都有用。这几个选项,只是用于说明可以进行什么行为,并不会在自动寻路时,自动实现跳跃,蹲下等。从高处跳下,可以使用Nav Link Proxy 来指导

 

然后,还要设置项目设置中的导航网格物体

UE4 运行python ue4 运行 显示网格_UE4 运行python_04

这一页中,主要是设置导航网格在生成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)。

在导航网格中,可以指定不同的运行时网格生成机制。

UE4 运行python ue4 运行 显示网格_Max_05

第一种,是静态的。

第二种,在导航修改器(Nav Modifier)发生改变时动态修改。仅当Nav Modifier Volume 类型的物体发生改变时,才会更新网格。

第三种,是动态的修改。所有会影响导航的物体改变位置都会更新。