unity的AI自动寻路Navigation,及其组件详解

第一步下载AI Navigation

第二部打开Navigation

第三步 将场景中的建筑或者不需要移动的物体设置为静态

第四步点击Navigation面板的back,即可自动生成寻路网格。

第五步选择你需要移动的物体,添加Nav Mesh Agent组件

第六步通过脚本使物体自己寻路

target为你想要移动的终点物体。

使用GetComponent<NavMeshAgent>().SetDestination(target.position);是角色朝着目标运动

属性介绍

  • Agent Radius:定义网格和地形边缘的距离
  • Agent Height:定义可以通行的最高度
  • Max Slope:定义可以爬上楼梯的最大坡度
  • Step Height:定义可以登上台阶的最大高度
  • Drop Height:允许最大下落距离
  • Jump Distance:允许最大的跳跃距离

  • Agent Type 寻路网格类型 与Navigation面板相对应,默认为Humanoid,可以自己添加网格类型。

  • Base offset:组件的竖直方向的偏移量;

  • Speed:角色移动速度;

  • Agular Speed:角色转动角速度;

    Acceleration:加速度(加速度是矢量,有大小有方向,在加速时是加速度,减速时是减速的加速度);与角色在转弯时的转动半径有关,加速度越大转动半径越小。

    StoppingDistance:距离目标点多远就停止(速度不能太快,加速度不能太小,否则跟目标点距离等于stoppingdistance时停不下来)

    Radiu:寻路组件半径;

    Height:寻路组件高度;

    Quality:寻路精细度,速度越快对寻路精细度要求越高;

    Priority:寻路权重(0-99,值越小优先级越高,优先级低的游戏寻路组件需要绕着他走);

    Auto traverse off mesh Link:是否支持off mesh link功能;

    Auto repath :自动重新规划路径;

    Area Mask:区域覆盖,当前寻路组件没有覆盖的区域,即使有时可行区域,对当前这个组件来说也是不可行区域;与Nav Mesh Area相对应。

  • Area Mask 还可以通过代码控制,详解请观看下列视频

  • 263 0409_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1QU4y197pT?p=63&vd_source=b920c756855002eb84da0f27a93771cc

Off Mesh Link介绍

主要作用将不连续的路段,进行搭桥。

在工程中创建两个空物体然后拖到Off Mesh Link组件面板的Start和End位置。

Nav Mesh Obstacle寻路动态碰撞

  • 如果出现障碍物的话,一般也是设置成静态,参与Navigation的导航烘焙,这样我们角色导航时不会与静态物体发生碰撞

  • 但是如果我们的障碍物不是静态的,是动态的时候,比如我们是通过代码实例化出的一个物体,并没有参与导航烘焙

  • 那这个时候就需要 Nav Mesh Obstalce组件来提供这个功能了!

  • Shape:选择障碍的几何形状
  • Carve:如果勾选,会重新渲染网格.勾选上该属性后,会出现如下三个可以控制的参数
  • Move Threshold:[移动阈值]
    大于该值的移动,才认为是真正发生了移动。
  • Time To Stationary:[时间静止]
    每间隔多长时间,检查一次该障碍物的位置,如果发生了移动则动态的更新导航
    网格的数据
  • Carve Only Stationary:[仅雕刻静止物体]
    勾选后,则按上面的时间间隔,固定的检查位置,固定时长更新网格数据;
    如果不勾选,则是每帧都会检查位置,如果发生位移,立刻更新网格数据。​​​​​​​
  • unityAI寻路组件

常用API:

  • ActivateCurrentOffMeshLink :激活或禁止当前off-MeshLink. 
  • CalculatePath :计算到某个点的路径并储存 
  • CompleteOffMeshLink :完成当前offMeshLink的移动 
  • Move :移动到相对于当前位置的点 
  • ResetPath :清除当前路径 
  • SetDestination :设置目标点 
  • SetPath :设置一条路线 
  • Warp :瞬移到某点
  • remainingDistance:到目标点的距离
  • desiredVelocity:期望速度,方向指向的是到达目标点的最短路径的方向
  • Stop:停止寻路。
  • Resume:继续寻路。

  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

love.南亭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值