Unity Navigation system自动寻路AI

Navigation system由四部分组成:

1.NavMesh(Navigation Mesh的缩写)
数据结构。用于描述“可以行走的平面”的数据结构。

2.NavMesh Agent
组件。可以自动寻路的角色都需要带的一个组件

3.NavMesh Obstacle
组件。描述角色(agent)需要避开的动态障碍物。

4.Off-Mesh Link
组件。用于描述不能用一般的可行走平面描述的置,如可以跳过的沟渠或围栏,需要打开的门,都可以用Off-Meshnk描述。

有了上面四个东西,就可以实现自动寻路了。简单来说,首先,我们需要用NavMesh记录一下哪些面可以让我们的角色在上面走动,然后再给我们需要自动寻路的角色挂上NavMesh Agent就可以了。先来简单实现一下:
1.先创建一个Cube,并拉伸一下

这里写图片描述

2.打开创建NavMesh的窗口:Window->Navigation
3.打开Navigation窗口中的Object栏,然后选中我们创建的Cube,勾选Object栏中Navigation Static.(所有需要参与渲染的物体都要勾选上这个)
4.点击Bake栏中的bake按钮。
我们可以看见Cube上面出现了一块蓝色的面,这就是NavMesh在场景中的样子,也就是说蓝色部分是角色可以移动的面。

这里写图片描述

5.现在再创建一个角色,我们创建一个圆柱体代表一下。

这里写图片描述

正如前面说的,要给我们的角色添加一个agent组件。
这里写图片描述

6.emmm……..怎么还不动。。。因为还没告诉角色该往哪走。所以现在给角色添加一个脚本,用这个脚本来告诉他该往哪儿走。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值