Unity新导航系统---NavMeshModifier组件&NavMeshModifierVolume组件

系列文章目录

Unity新导航系统—NavMeshModifier组件&NavMeshModifierVolume组件



前言

NavMeshModifier组件:用于在场景中标记特定的对象,以便控制该对象在导航网格上的行为,或者改变该区域的导航网格生成规则。
NavMeshModifierVolume组件:用于在场景中定义一个区域,并通过该区域影响导航网格的生成规则。
这是我的学习笔记,记载的是NavMeshModifier组件和NavMeshModifierVolume组件的用法和各个属性的用处(请先去看我的“Unity新导航系统—NavMeshSurface组件 ”的文章,因为这两个组件的介绍要基于它),不能保证完全准确但是初学者可以参考一下。


NavMeshModifier组件

请添加图片描述
准备这样的一个场景。


请添加图片描述
请添加图片描述
准备两个Agent,其中Humanoid设置一下Jump Distance让它可以跨区域跳跃。
请添加图片描述
不要勾选它的Generate Links,烘焙Humanoid的NavMesh。
请添加图片描述
请添加图片描述
效果如图,它是不可以跳跃和从平面掉下的。
请添加图片描述
同样不勾选Generate Links来烘焙Car的NavMesh。
请添加图片描述
这俩的NavMesh重合了。
请添加图片描述
请添加图片描述
你可以隐藏Humanoid的NavMeshSurface来只显示Car的NavMesh。
请添加图片描述
请添加图片描述
选择下面的桥给它添加一个NavMeshModifier组件。
请添加图片描述
新建一个名为Water的区域。
请添加图片描述
Mode有两个选项,默认值是Add or Modify object用于添加或修改,第二个Remove object用于移除。
请添加图片描述
Affected Agents的上面两个分别是无Agent会受影响和全部Agent会受影响,下面是你创建的Agent你只能选择你创建的所有Agent的其中一个无法多选,如果你想多选那么可以多创建几个NavMeshModifier来选择。
请添加图片描述
请添加图片描述
将Affected Agents设置为Car,勾选Override Area后将Area Type设置为Water,表示用Water来覆盖这部分原来的Walkable。
请添加图片描述
把两个Agent重新烘焙。
请添加图片描述
此时Car的桥变为Water的颜色,但是Humanoid的桥还是Walkable的颜色,这是因为你的Affected Agents设置为Car。
请添加图片描述
请添加图片描述
这次改为All。
请添加图片描述
请添加图片描述
重新烘焙两个区域后,桥都变为Water的颜色了。
请添加图片描述
切换到Humanoid的NavMesh。
请添加图片描述
删除中间的桥并再进行烘焙。
请添加图片描述
请添加图片描述
选中右边的区域,给它添加NavMeshModifier组件,然后勾选Override Generate Links再勾选Generate Links。
请添加图片描述
再次烘焙,两个平面就生成了连接表示可跳跃,前提是Humanoid的Jump Distance大于两个平面间的距离。绿Cube是Humanoid类型的Agent。
请添加图片描述
请添加图片描述
此时它可以由右向左但是不可以由左向右,因为只有右边的区域有Generate Links。
请添加图片描述
请添加图片描述
给左边的平面做同样的操作。
请添加图片描述
此时它可以左右来回跳跃。
请添加图片描述
请添加图片描述
选中左侧的平面,将Mode改为Remove object。
请添加图片描述
烘焙两个Agent的NavMesh,你会发现Humanoid的NavMesh的左平面原来的Walkable被移除了,因为Affected Agents为All所以如果你切换到Car的NavMesh它的左平面其实也被移除了。

NavMeshModifierVolume组件

请添加图片描述
这是名为Humanoid的Agent的NavMesh。
请添加图片描述
请添加图片描述
选择右平面添加一个NavMeshVolume组件,其实随便找个空物体添加这个组件也行。
请添加图片描述
请添加图片描述
此时会出现一个立方体,你可以调整它的中心和大小。
请添加图片描述
将Area Type设置为Water,Affected Agents设置为All。
请添加图片描述
这是烘焙后的Humanoid的NavMesh,立方体区域会变为Water的类型。
请添加图片描述
这是烘焙后的Car的NavMesh,立方体区域同样会变为Water的类型。
请添加图片描述
如果把Affected Agents设为Humanoid。
请添加图片描述
请添加图片描述
重新烘焙两个Agent的NavMesh,此时只有Humanoid的NavMesh的立方体区域变为Water。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值