欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity导航 (寻路系统Nav Mesh Agent)

程序员文章站 2022-07-07 08:22:34
第一种 简单寻路 地面接触到的。到达目标点不用跳跃能够一直走路到达。场景视图中简单搭设几个物体。胶囊体为寻路者,黄球为目标点 红地板,绿色障碍物。现将地板以及障碍物选中 在检视面板设置静态为Navigation Static 如图2然后菜单栏选择窗口 Window –Navigation然后选择Al ......

第一种 简单寻路 地面接触到的。到达目标点不用跳跃能够一直走路到达。


场景视图中简单搭设几个物体。


胶囊体为寻路者,黄球为目标点 红地板,绿色障碍物。



现将地板以及障碍物选中 在检视面板设置静态为navigation static 如图2


然后菜单栏选择窗口 window –navigation



然后选择all—bake烘焙如图



有三个页面参数可以调节烘焙效果,参数具体参照圣典解释。



注意 胶囊体和目标物都要烘焙在蓝色格子里面。否则不能实现,可以调节第二个页面里的参数调节烘焙大小。


然后给胶囊体添加导航组件


菜单栏component—navigation-nav mesh agent


组件参数详情参见圣典.



然后给胶囊体添加代码,代码内容如图


aa即为目标物。在检视面板将球给aa。运行即可实现简单寻路。如图



第二种寻路 不连续,可以跳跃的寻路


先搭设简单场景 如图 如果跳跃必须加三个跳板如图长条白板


将地面和高台(绿色)一起设置为navigation static



给中间跳板加一个组件 component—navigation—off mesh link 其中有几个属性 start和end 这就是起跳位置和落地位置,将两个跳板用鼠标拖拽上即可。胶囊体添加寻路组件和第一种一样。添加脚本。脚本一样。所有组件选择完毕后最后选择烘焙。
烘焙时 all 下面两个属性都要选中。

烘焙时有时会出现上图有个圆圈位置未烘焙上,原因是胶囊体进入地面太多。可以再将胶囊体移动位置至蓝色网格上即可 运行即可实现。以上步骤落下一步该系统便不能实现。 细心即可。



agent radius 代理半径 半径越小生成网格的面积越大,也越靠近静态物体的边缘。



agent height 代理高度


max slope 物体抬升台阶的高度


drop height 允许的最大下落距离


jump height 允许的最大跳跃距离


radius 代理逃避半径 height 代理经过障碍物下方目的高度



base offset 偏移距离


steering 操作 指导


speed 代理最大移动速度 angular speed 角速度


acceleration 最大加速度 stopping distance 停止时和目标的距离(距离目标多少时停下)


auto braking 该代理是否自动制动去避免超过目的点


obstacle avoidance 故障排除


quality 质量 priority 优先级


path finding 路径寻找中……


auto traverse off mesh link 该代理是否自动穿过off mesh links?


off-mesh连接用于连接不相交区域的导航网格。通常,当该属性设置为true时,角色应该有能力自动通过或者穿过连接。但是,在需要特殊控智移动的时候它也可以被设置为false。


auto repath 自动更新路径(例如目标位置改变,需要重新更新路径)


area mask 区域遮挡 (代理的行动区域,能在什么地方走。默认everthing 任何地方)


更多unity2018的功能介绍请到paws3d爪爪学院查找。