Unity3D导航系统


Unity3D导航系统

简介

Unity3D自带导航系统,将寻路的代码封装起来,集成了Navigation导航系统。
Navigation总控制面板由Agent(代理/导航参数设置)、Areas(区域)、Bake(烘培)和Object(对象)4部分组成。

导航系统介绍

Unity3D导航系统由三个组件和一个Navigation总控制面板组成,该系统也是由A*算法拓展实现的。
Navigation是一种用于实现动态对象自动寻路的技术,它将游戏场景中复杂的关系简化为带有一定信息的网格,并基于这些网格经过一系列相应的计算实现自动寻路

Navigation总控制面板由4部分组成,分别为Agent、Areas、Bake和Object,下面具体介绍一下。

  1. Agents(导航参数设置)面板
  • Name(名称):设置烘培Agents的名字
  • Radius(半径):烘培的半径,也就是对象烘培的半径。对象能通过的路径大小,值越小,能走的路径越大,边缘区域越小。
  • Height(高度):具有代表性的对象的高度,可以通过的最低的空间高度。值越小,能通过的高度就越小。
  • Step Height(步高):梯子的高度,一般根据模型梯子的高度设置。
  • Max Slope(最大坡度):烘培的最大角度,坡度。
  1. Areas(区域)面板

    该面板可以设置在自动寻路时,对象可以通过哪些区域
  2. Bake(烘培导航网格)面板
  • Agent Radius(代理半径):具有代表性的对象的半径,半径越小生成的网格面积越大。
  • Agent Height(代理高度):具有代表性的对象的高度。
  • Max Slope(最大坡度):斜坡的坡度。
  • Step Height(步高):台阶的高度。
  • Drop Height(掉落高度):允许最大的下落距离。
  • Jump Distance:允许最大的跳跃距离。
  • Min Region Area(最小区域面积):网格面积小于该值则不生成导航网格。
  • Height Mesh(高度网格):勾选后会保存高度信息,同时会消耗一些性能和存储空间。
  1. Object(对象)面板

    在该面板中可以选择、设置要参与导航网格烘培的对象、可以设置对象是可以被自动寻路的,如路面;也可以设置对象是不可以被自动寻路的(即不能走),如湖面。
  1. Nav Mesh Agent(自动寻路组件)
  • Agent Type(代理类型):寻路类型
  • Base Offset(基准偏移):偏移值。值越大越容易寻路,但目标会偏离得月圆
  • Speed(速度):对象自动寻路的速度
  • Angular Speed(角速度):对象自动寻路的拐弯速度
  • Acceleration(加速):加速度
  • Stopping Distance(停止距离):对象停下的距离。如果值设置为0,则在距离目标点为0处停下
  • Auto Braking(自动刹车):是否自动停下
  • Radius(半径):对象躲避障碍物的半径。大于这个半径无法躲避障碍物
  • Height(高度):对象躲避障碍物的高度。大于这个高度无法躲避障碍物
  • Quality(质量):躲避障碍物的等级,等级越高,躲障碍物越准确
  • Priority(优先级):优先级。值越大,障碍物躲避越优先
  • Auto Traverse Off Mesh Link(自动通过分离网格链接):自动跳跃链接
  • Auto Repath(自动重新寻路):自动复制路径
  • Area Mask(区域遮罩):能通过的Mask层,可以配合Navigation组件中的Areas使用。
  1. Nav Mesh Obstacle(障碍物组件)
  • Shape(形状):障碍物的形状
  • Center(中心):障碍物的中心点坐标
  • Size(大小):障碍物的大小
  • Carve(切割):障碍物的网格
  1. Off Mesh Link(跳跃组件)
  • Start(起始):跳跃的开始点
  • End(结束):跳跃的结束点
  • Cost Override(成本覆盖):是否计算路径开销,即使否将寻路计入寻路距离
  • Bi Directional(双向):开始点和结束点是否可以互跳
  • Activated(已激活):是否激活
  • Auto Update Position(自动更新位置):自动更新位置坐标
  • Navigation Area(导航区域):可以寻路的层

参考文献

【1】张尧.Unity3D从入门到实战.中国水利水电出版社,2022(6):95-98

实例

https://www.cnblogs.com/su-make/articles/Unity-Navigation-Example.html

posted @ 2022-10-12 22:07  马林林林  阅读(538)  评论(1编辑  收藏  举报