Unity 的导航系统主要由Navigation编辑器和Nav Mesh Agent、Nav Mesh Obstacle、Off Mesh Link组件组成。其中Navigation编辑器烘焙导航网格,Off Mesh Link组件手动生成网格链接,其余的两个组件则添加到动态游戏对象(敌人、怪等)身上。
一、Navigation
Object:
● Navigation Static: 选中的物体将参与烘焙导航(可以在Inspector检视窗口中选择Static类型)
● Generate OffMeshLinks: 生成导航链接。(自动生成桥(Jump Distance)或下落(Drop Height)链接等)
● Navigation Area : 导航Area(对应的是导航代价)
Bake:
● Agent Radius: 代理半径。半径越小导航网格面积越大
● Agent Height: 代理高度
● Max Slope: 代理能移动的最大坡度
● Step Height: 台阶高度。即导航网格能覆盖一定高度的楼梯
Generated off Mesh Links: 生成导航链接
● Drop Height: 允许最大的下落距离
● Jump Distance: 允许最大的跳跃距离(桥)
● Advanced(高级设置):
? Manual Voxel Size: “Voxel Size”的值越小导航网格越精确
? Min Region Area: 当选中的平面边长小于这个数值时,该平面将不会烘焙网格
? Height Mesh: 当勾选此项以后游戏对象将会贴着地面走,而不勾则会在导航网格上走
Areas:
Areas: 区域。可以设置导航代理在该区域行走的代价,导航代理将会优先选择代价小的行走
二、导航组件
Nav Mesh Agent:
● Agent Size:
? Radius: 代理半径
? Height: 代理高度
? Base Offset: 相对偏移。碰撞几何体相对于实际几何体垂直的偏移
● Steering:
? Speed: 速度
? Angulat Speed: 游戏物体的转向速度
? Acceleration: 加速度
? Stopping Distance: 制动距离。到目的地的距离小于这个值,代理减速。
? Auto Braking: 自动制动
● Obstacle Avoidance: 躲避的质量水平
? Quality:
? Priority:
● Path Finding:
? Auto Traverse Off Mesh Link: 自动移动到OffMesh的结束点。取消勾选以后可以使用代码控制
? Auto Repath: 自动重新寻路
? Area mask: 可以行走的导航网格类型
Nav Mesh Obstacle:
● Shape: 障碍类型
● Carve: 是否打开在导航网格挖洞模式
? Move Threshold: 移动距离超过这个阙值以后更新导航网格,即重新挖洞。(必要条件)
? Time To Stationary: 当游戏对象停止运动这么长时间时开始更新导航网格(必要条件)
? Carve Only Stationary: 当游戏对象静止的时候更新导航网格(前面两个条件满足时自动更新)
Off Mesh Link:
该组件的作用是手动创建OffMeshLink
● Start: 起始点
● End: 结束点
● Cost Override: 开销覆盖。如果值为正数,使用该正数计算路径成本处理路径的请求。否则使用默认成本(这个游戏对象所属的层的开销)。如果Cost Override的值设置为 3.0,该OffMeshLink链接移动相同的距离的开销,是在默认的导航网格的三倍
● Bi Directional: 如果勾选这个,链接的两个方向都可以通过。否则只能从起始点到结束点
● Activated: 激活
● Auto Update Positions: 自动更新位置
● Navigation Area: 导航区域
●