Unity3D自动寻路之Nav Mesh Agent(导航网格代理)

您所在的位置:网站首页 导航navi是什么意思 Unity3D自动寻路之Nav Mesh Agent(导航网格代理)

Unity3D自动寻路之Nav Mesh Agent(导航网格代理)

2024-01-23 17:55| 来源: 网络整理| 查看: 265

Nav Mesh Agent 效果图

效果图

创建地面. 1.1 在Hierarchy下创建一个空的游戏对象命名为Ground: 右键 –> Create Empty –>重命名为Ground. Ground下面创建五个Plane游戏对象: 右键 –> 3D Object –> Plane, 创建一个之后进行复制即可.` 提示:创建一个之后,按Ctrl + D 进行复制即可. 1.2 两个Plane分开,中间用另外三个Plane游戏对象进行连接.

添加导航. 2.1 先添加导航窗口: 菜单栏Window –> Navigation 2.2 进行烘焙: 选中Ground下所有的Plane –> 点击Inspector下static边上的三角形 –> 选中Navigation Static –> 切换到Navigation窗口 –> 点击Bake –> 直接点击 Bake进行烘焙. 烘焙之后的效果

Hierarchy下创建一个Cube作为导航的目标点.创建一个Sphere最为Player. 选中Player –> Inspector界面下Add Component 添加组件 –> 搜索Nav Mesh Agent(实现自动导航)组件进行添加 –> 在Project下创建一个Scripts用来存放C#脚本 –> 右键Create一个C#脚本,起名字为PlayController 编写C#脚本 public class PlayController : MonoBehaviour { //定义接收导航网络组件 private NavMeshAgent nav; //定义目的地的方块 public Transform cubePos; void Start() { //赋值 nav = this.transform.GetComponent(); } void Update() { //设置目的地的位置为方块的位置 nav.SetDestination(cubePos.position); } }

编写完成后, 将脚本拖拽到之前创建好的Sphere上面, 然后会在Inspector界面下看到该脚本下有一个CubePos,是用来设置目的地的位置,直接将之前创建好的Cube拖拽到CubePos上面即可. 5. 添加材质. 5.1 在Project中创建一个空的文件夹Metarials用来存放所有材质. 5.2 右键 –> Create –> Material –> Albedo –> 设置颜色 –> 拖动创建好的Material到游戏对象上面. 注意:一个材质只能使用一种颜色,不能为多个游戏对象添加颜色.可以创建多个材质来实现. 5.3 为桥和小球添加相应颜色的材质. 5.4 Ctrl + D 复制多个小球, 这里创建了三个材质,颜色分别是Red,Green,Blue.所以创建一个三个空的游戏对象用来存放不同颜色额的小球. 可以运行看一下效果. 6. 指定导航路径. 6.1 在之前添加的Navigation窗口下的Areas里面添加三个区域, Name分别为Red, Green, Blue. 6.2 分别选中三座桥,在各自的Navigation窗口下的Object里的Navigation Area中选中相对应的颜色(默认是地面).之后重新烘焙. 注意:改过Navigation Area之后要重新烘焙. 6.3 导航走的区域已经分好了, 但是默认状态下可以走所有的区域.下面修改每种颜色的Sphere可以走的区域. 选中需要修改的Sphere –> 在Nav Mesh Agent 组件里面的最下方有个 Area Mask –> 选中 Walkable(默认是全部) 和 自己可以走的颜色. 7. 运行之后会发现小球会在cube的外面转圈, 这是因为小球是有质量的, 可以在 Nav Mesh Agent组件中的Quality调整为None, 在运行.

面板中的一些参数

ObjectNavigation Static勾选后表示该对象参与导航网格的烘焙Generate OffMeshLinks勾选后可以跳跃导航网格和下落Navigation Area物体烘焙网格属于哪个图层, 可通过代码让游戏人物走不同的路BakeAgent Radius具有代表性的物体半径, 半径越小生成的网格面积越大.和边缘的距离Agent Height具有代表性物体的高度Max Slope斜坡的坡度Step Height台阶高度Drop Height允许跳跃最大下落距离Jump Distance允许最大的跳跃距离Manual Voxel Size手动输入像素值Min Region Area网格面积小于该值则不生成导航网格Height Mesh选中该项,将会保存高度信息,同事也会消耗一些性能和存储空间

Nav Mesh Agent 组件面板

Agent Size尺寸控制Radius物体的半径Height物体的高度Base Offset偏移度Steering行动控制Speed物体进行的最大速度Angular Speed行进过程中转向是的角速度Acceleration物体的行进加速度Stopping Distance距离目标点小于多远距离后便停止行进Obstacle Avoidance躲避障碍参数Quality质量Priority优先级Path Finding路径寻找Auto Traverse Off Mesh Link是否采用默认方式度过连接路径Auto Repath在行进过程中,因某些原因中断的情况下,是否重新开始寻路Auto Mask自动遮罩


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3