您当前的位置: 首页 >  unity

梦小天幼

暂无认证

  • 3浏览

    0关注

    25博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

详解Unity中的Nav Mesh|导航寻路系统 (二)

梦小天幼 发布时间:2022-08-29 15:51:39 ,浏览量:3

前言

上一篇简单讲述了Nav Mesh导航系统的使用,并且做出了一个小案例,本篇我们会更加深入,更加系统去讲解,包括NavMeshAgent组件、NavMeshObstacle组件、OffMeshLink组件等,以及相关参数。

本系列提要

Unity导航系统专题博客共分成三篇来讲解: 【本篇为第二篇】

  • 第一篇(点击直达):如何快速上手使用
  • 第二篇(点击直达):详解Nav Mesh Agent参数,详解如何添加动态障碍(Nav Mesh Obstacle),详解如何创建外链接(Off Mesh Link)
  • 第三篇(点击直达):详解Navigation属性栏,包括AI寻路的区域与花费代价,路线网格烘焙相关参数,如何自动添加外链接

目录
    • 前言
      • 本系列提要
    • 本篇内容概述
    • 一、Nav Mesh Agent | 导航网格代理
      • Steering | 操纵、转向相关属性
      • Obstacle Avoidance | 障碍回避相关属性
      • Path Finding | 路径选择相关属性
    • 二、Nav Mesh Obstacle | 导航网格障碍物
      • 概述
      • NavMesh Obstacle 组件参数
    • 三、Off Mesh Link | 导航网格外链接
      • 简单应用
      • Off Mesh Link 组件参数
    • 四、总结和参考资料
      • 1.总结
      • 2.参考资料

前排提醒:本文仅代表个人观点,以供交流学习,若有不同意见请评论留言,笔者一定好好学习,天天向上。

Unity版本[2019.4.10f1] 梦小天幼 & 禁止转载

视频讲解: 详解Unity的导航系统 (二)_BiLiBiLi

本篇内容概述

上期我们已经讲解了关于导航网格的概念,它本质上就是一种预处理,至于为什么会处理成网格状,这与寻路算法相关,暂不讲解。而网格代理呢,就是寻路AI。这期我们接触两个新概念,一个是网格障碍物(NavMesh Obstacle),一个是网格外连接(Off-Mesh Link)。 在这里插入图片描述

在这里插入图片描述

一、Nav Mesh Agent | 导航网格代理

如果想要一个角色学会自动寻路,就必须要先添加一个导航网格代理组件,以下是该组件的详细参数讲解(不理解的可以先看上一篇,先学基础再深入) 在这里插入图片描述

参数描述Agent Type可将AI的宽高,可跨越台阶高度,坡度等数据作为一个类型保存起来,方便不同类型的寻路AI选择不同类型,具体可在Navigation属性栏的Agents修改!!! (当前版本不生效,请忽略该属性,新版NavMesh才生效!!!!!!新版请参阅(新版后续也会讲):https://github.com/Unity-Technologies/NavMeshComponents)Base Offset碰撞圆柱体相对于变换轴心点的偏移 Steering | 操纵、转向相关属性 参数描述Speed当前AI的最大移动速度(米/每秒)Angular Speed当前AI的最大旋转速度(度/每秒)Acceleration当前AI的最大加速度Stopping Distance抵达目标时,应距离目标多少米之外,0米就是完全重合Auto Braking若启用,则AI将会在马上抵达目标时减速 Obstacle Avoidance | 障碍回避相关属性 参数描述Radius当前AI半径,用于计算与其他AI之间的碰撞Height当前AI通过头顶障碍物时所需的高度间隙Quality障碍躲避质量,如果存在大量寻路AI,则可以通过降低障碍躲避质量来节省 CPU 时间。如果将其设置为无,AI之间会忽略碰撞,相互重叠Priority执行避障时,当前AI将忽略优先级(Priority)较低的AI。该值应在 0–99 范围内,其中较低的数字表示较高的优先级 Path Finding | 路径选择相关属性 参数描述Auto Traverse OffMesh Link设置为true可自动遍历网格外链接 (Off-Mesh Link)。如果要使用动画或某种特定方式遍历网格外链接,则应关闭此功能。Auto Repath启用此属性后,代理将在到达部分路径末尾时尝试再次寻路。当没有到达目标的路径时,将生成一条部分路径通向与目标最近的可达位置*Area Mask当前AI在寻路时,可以走哪条路以及禁止走哪条路,都可以通过此项来设置,详细演示会在第三篇的AI寻路的区域与花费代价部分讲解 二、Nav Mesh Obstacle | 导航网格障碍物

游戏中不可能只有静态障碍物,一定存在着动态障碍物,比如一些机关类游戏里的滚木等等。又或者马路上行驶的汽车,对于寻路AI来说,都可以称作是动态障碍物。内容概述部分提供的例图里也展示了动态障碍物,那么如何在游戏中制作这样的障碍物呢,这就需要用到NavMesh Obstacle组件了。

概述

寻路AI之所以会绕开障碍物走,是因为当障碍物的高度或者坡度足够大(这里AI可跨越的高度和坡度是可以自定义的),大到AI无法跨越时,其烘焙时,就会在导航网格上雕出一个孔洞。

关注
打赏
1661831791
查看更多评论
立即登录/注册

微信扫码登录

0.0536s