Unity基础之寻路系统

一、NavMehAgent组件属性介绍:

  • Agent Radius:定义网格和地形边缘的距离
  • Agent Height:定义可以通行的最高度
  • Max Slope:定义可以爬上楼梯的最大坡度
  • Step Height:定义可以登上台阶的最大高度
  • Drop Height:允许最大下落距离
  • Jump Distance:允许最大的跳跃距离
  • 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相对应。

1.安装寻路组件AI Navigation

2.将场景中不动的物体勾选Static

点击烘焙

就会出现这样的效果 代表烘焙完成 。注意当地形发生变化时 需要重新烘焙

3.给需要寻路的物体添加NavMeshAgent组件和脚本

 private NavMeshAgent agent;
    public Transform target;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        
    }

    void Update()
    {
        agent.SetDestination(target.position);
    }

运行之后,寻路的物体就会自动根据最佳路径寻找物体

二、Off Mesh Link组件

主要用于不连续的路段进行搭桥,以方便寻路物体通过不连续路段

设置详细如下:

在两个不连续路段相邻处设置两个位置,对任一位置添加Off Mesh Link 组件,设置成功后两个位置之间会有一个较黑的弧线,如下:

设置好Start 和End位置,运行后寻路物体就会自动通过该路段。

对于不连续的路段也可在两者之间添加一个平面,设置静态 烘焙为寻路网格,之后再隐藏该物体也可达到通过不连续路段的效果。

三、Nav Mesh Obstacle寻路动态碰撞

针对与场景中非静态物体,既可运动又可遮挡寻路对象

 

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

  • 常用API:

  • ActivateCurrentOffMeshLink :激活或禁止当前off-MeshLink. 
  • CalculatePath :计算到某个点的路径并储存 
  • CompleteOffMeshLink :完成当前offMeshLink的移动 
  • Move :移动到相对于当前位置的点 
  • ResetPath :清除当前路径 
  • SetDestination :设置目标点 
  • SetPath :设置一条路线 
  • Warp :瞬移到某点
  • remainingDistance:到目标点的距离
  • desiredVelocity:期望速度,方向指向的是到达目标点的最短路径的方向
  • Stop:停止寻路。
  • Resume:继续寻路。
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值