人工智能AI 在Unity中的实现

NavMesh 入门知识(1)

2016-12-18  本文已影响2339人  LeoYangXD

NavMesh是自动寻路系统,我们字游戏中经常会用到,比如控制角色移动的时候,他会绕开障碍物到达你所指定的地点。而这个功能需要我们第一烘培场景,这个需要Navagation,第二给角色添加NavMeshAgent组件,这篇文章我们就介绍下NavMeshAgent组件。

Paste_Image.png Paste_Image.png

首先通过window菜单栏才选中Navagation打开

Paste_Image.png

(小技巧:有的时候我们在Scene视图中看不到这个烘焙过的网格界面,但是我们点了Navation面板以后就能看到了)

Paste_Image.png Paste_Image.png Paste_Image.png

把箭头1指向的Generate OffMeshLimks勾选上,而箭头2指向的NavigationArea这就是你希望把该区域烘焙成什么类型的区域,而NavigationStatic这个就代表是静态的,在游戏中是不能移动的。同时当我们在烘焙的时候就会把他的一些网格信息存储起来,然后在计算最短路径的时候会把这个考虑进去,假如我们不勾选,则当角色移动到该物体,与该物体发生碰撞的时候才会考虑这个物体,只有我们把这个勾选上才可以去选择下边两个选项,否则选择不了。
接下来我们继续回到Bake界面

Paste_Image.png

这个只能从上往下跳跃,假如我们想从下往上跳跃,我们只能使用手动网格连接

Paste_Image.png

手动添加分离网格连接

首先创建一个Cube,然后添加上OffMeshLish组件

Paste_Image.png Paste_Image.png Paste_Image.png

设置完以后我们就发现这两个物体之间有一条线在连接,而且箭头是双指向的。

补充:关于NavMesh常用API
destination:NavMeshAgent的目的地
remainDistance;距离目的地剩下的距离
Resume()重新规划路径
Stop()停止
SetDestination()设置目标点
Warp()让NavMeshAgent瞬移到该点

注意

当我们每次要对导航网格修改时,每次修改以后一定要点一下Bake这个按钮,然后他才会自动烘培。
还有一个小技巧,当我们想把某个新建物体烘培到场景里边里边时

Paste_Image.png

可以直接通过这个标签来进行设置,比较快捷。

上一篇 下一篇

猜你喜欢

热点阅读