美文网首页
Navigation导航寻路

Navigation导航寻路

作者: Levi_Wan | 来源:发表于2016-12-13 20:45 被阅读816次

NavMesh简介

unity 中使用Navigation作为解决方案。

  • 寻路(驱动一个游戏物体移动到目标位置上)
Paste_Image.png

图上所有蓝色的区域为walkable可走的区域,NavMesh由多个多边形组成。

  • Unity会自动检索场景对象附近的多边形网格,并将它们进行路线烘焙,并寻找出烘焙路线中的最短路径。

Navigation导航

  • 为了实现导航首先需要创建一个场景,并烘焙
    • 创建一个Plane并命令为NavMesh,并添加一个Cube改变形状作为它的子物体,进行场景搭建。
Paste_Image.png
  • 接着进行烘焙
Paste_Image.png Paste_Image.png
  • 烘焙过后Unity会自动为我们创建一个与改场景同名的文件夹用于保存NavMesh
Paste_Image.png

Navigation Bake参数介绍

Paste_Image.png
  • Agent Radius:该参数代表场景中对象的烘焙通用宽度。(代理的避让半径。当代理作为障碍物时,其他代理不能从中穿过。)
Paste_Image.png
  • 如果增大这个参数带来的效果

    • 增大前
Paste_Image.png
  • 增大后
Paste_Image.png Paste_Image.png
  • Agent Height:垂直间隙空间的高度,当高度小于这个高度时,这个高度以下的多边形网格将不会被NavMesh烘焙。


    Paste_Image.png
  • 增大这个高度(具有垂直Mesh的多边形网格将不会被烘焙)

Paste_Image.png
  • Max Slope:可以进行烘焙的最大坡度
Paste_Image.png
  • 坡度大于45度时,则这个斜坡则不会被烘焙。
Paste_Image.png
  • Step Height:台阶高度,高度差小于0.4的将会被连接在一起
Paste_Image.png Paste_Image.png
  • Generated Off Mesh Links(分离网格组件,可以将两个网络进行连接)
Paste_Image.png
  • Advance 参数,立体像素大小(与Agent Radius(游戏代理角色)相关,为Agent Radius的三分之一)


    Paste_Image.png
  • 最小区域

Paste_Image.png
  • 当独立面积小于2的时候不进行烘焙

  • Height Mesh

Paste_Image.png
  • 勾选时会对原来的高度进行运算,对内存和性能有影响

导航的实现

  • 在场景中添加一个胶囊体作为角色,添加一个空物体作为Target。
Paste_Image.png Paste_Image.png
  • 为胶囊体添加一个Move脚本并将Target的Transform拖拽进去。
Paste_Image.png Paste_Image.png
  • 运行游戏Unity会自动计算最短路线,红色线为路径(深色为将会经过的NavMesh三角面)。
Paste_Image.png

相关文章

网友评论

      本文标题:Navigation导航寻路

      本文链接:https://www.haomeiwen.com/subject/bsavmttx.html