unity学习50:NavMeshAgent 区域Areas和cost

目录

1 NavMeshAgent 区域和成本的问题

2 区域Areas

2.1 区域和颜色

2.2 区域和成本

2.3 区域成本的作用

2.4 地图测试准备

2.5 如何实现

2.5.1 unity的2022之前的老版本

2.5.2 unity的2022之后的新版本

2.6 如果测试失败,是因为没有bake

2.7 测试前,必须先烘焙

3 区域遮罩:针对 NavMesh Agent

3.1 Ares Mask

3.2 实测OK


1 NavMeshAgent 区域和成本的问题

  • NavMeshAgent 除了代理相关
  • 还有一个Areas

2 区域Areas

2.1 区域和颜色

  • 之前,进行导航寻路的时候,地面上的颜色就是对应的这儿的颜色
  • 不同的区域设定为不同的颜色,可以在这查颜色对比

2.2 区域和成本

  • 每个区域可以设置为不同的成本
  • 系统默认的几个区域也设置了同的成本
  • 比如walk的 为1
  • jump的为2
  • 新建的可以自己修改

2.3 区域成本的作用

  • 智能寻路/导航时再计算起点,终点的智能寻路的时候,会考虑成本
  • 会选择最低成本的道路通过
  • 比如会尽量绕开河流,沼泽地等等

2.4 地图测试准备

  • 新建一个 Area类:river 
  • 修改其cost
  • 把地图上新建一个长方体代表河流,把这个区域选择为 river

2.5 如何实现

2.5.1 unity的2022之前的老版本

2.5.2 unity的2022之后的新版本

  • 需要在gameObject上新增1个 NavMeshModifier
  • 设置数学
  • affected agents: 选择是纯角色,还是全部
  • area type : 属于哪种区域

2.6 如果测试失败,是因为没有bake

  • 我设置为river 也不绕路
  • 我设置为 non walkable 居然也直接走
  • 感觉有啥问题:  不是即时生效的,必须先bake

2.7 测试前,必须先烘焙bake

  • 修改Area 属性,区域后
  • 必须去有 NavMeshSurface的 物体上,点击bake
  • 直到你修改的区域,出现粉红色的区域颜色,代表bake成功

3 区域遮罩:针对 NavMesh Agent

3.1 Ares Mask

  • 角色一定不走某个区域,但是怪物可以走
  • 针对Agent
  • 可以在Area Mask里勾选掉一些区域,这样角色就不走这个区域了
  • 有点像区域了设置了 not walkable的效果

3.2 实测OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值