Unity NavMeshAgent(自动寻路)+鼠标点击到达地点+动态障碍寻路
1、利用NavMeshAgent实现简单寻路(无需手动操作,设置好目标即可寻路)
效果:
步骤
(1)先创建地形及障碍物(长方体),障碍物一定要放到plane层级下方。
(2)点击Plane,在右侧检查器中,点击“静态的”,勾选“Navigation Static”,并应用到子物体
(3)点击“窗口”,选择“AI”,点击其中的“导航(Navigation)”
(4)点击后打开了导航界面,首先,点击“对象”
点击层级视图中的Plane,将Plane设置为"Walkable"
点击Plane下的障碍物,将其都设置为“Not Walkable”
然后选择“烘焙”区域,根据自身可调整参数,然后点击Bake.
烘焙中主要是地形对寻路的影响:
●代理半径(Agent Radius)可理解为寻路者的半径
●代理高度(Agent Height) 可理解为寻路者的高度
●最大坡度(Max Slope) 超过这个坡度寻路者则无法通过。
●步高(Step Height) 是楼梯的最大高度,超过这个高度寻路者则无法通过。
●掉落高度(DropHeight) 寻路者可以跳落的高度极限。
●跳跃距离(Jump Distance)寻路者的跳跃距离极限。
点击Bake后,会在Scenes中自动生成文件夹及文件
此时观察场景中,其中蓝色部分就是可以移动的部分。
(5)添加Play(寻路者)和Target(寻路目标)
点击Play,在检查器为其添加“Nav Mesh Agent”组件
创建一个脚本“Move.cs”,挂载到Play上,代码如下
using System.Collections;
using System.Collections.Generic;
u