赞
踩
在以前unity没有寻路系统 ,游戏设计中 的寻路得靠大量的代码完成;
现在Unity出来一个寻路组件
在这里我介绍一下;
首先创建一个平台
在这里我们做比较重要的一步
把你想要烘焙的东西都改成静态(static)
static那里的那个改变一下就可以了
这个场景的创建可以说是非常简单了;
我们打开一个Navagation面板;(在window中打开)
Agent Radius:具有代表性的物理半径。物理半径越小,生成的面积越大,也越靠近静态物体边缘。
Agent Height:具有代表性的物体的高度。
Max Slope:最大可行进的斜坡斜度。
Step Height:台阶高度(台阶高度设置越大 越能上台阶)
Drop Height:允许的最大下落距离。
Jump Distance:允许的最大跳跃距离。
Advanced:高度参数调节。
Manual Voxel Size:选中手动输入像素值。
Voxel Size:输入像素值。
Min Region Area:网格面积小于该值的地方,将不生成导航网格。
Height Mesh:选中该选项,将会保存高度信息,同时也会消耗一些性能和存储空间。
Agent Size:尺寸控制。
Radius:物体的半径。
Height:物体的高度。
Base Offset:偏移值。
Steering:行动控制。
Speed:物体的行进的最大速度
Angular Speed:行进过程中转向时的角速度。
Acceleration:物体的行进加速度。
Stopping Distance:距离目标点小于多远距离后便停止行进。
Auto Braking:选中后自动制动。
Obstacle Avoidance:躲避障碍参数。
Quality:质量。
None:无
Low Quality:低质量。
Medium Quality:中等质量。
Good Quality:较好质量。
High Quality:高等质量。
Priority:优先级。
Path Finding:路径寻找。
Auto Traverse Off Mesh Link:是否采用默认方式度过连接路径。
Auto Repath:在行进过程中,因某些原因中断的情况下,是否重新开始寻路。
Auto Mask:自动遮罩。
然后打开Navagation面板中的Bake
然后根据上面给的参数设置你想要的参数;
点击 Bake 即可渲染网格;
接下来就是设置target物体(目标物体);
然后创建Player 给他添加一个Nav Mesh Agent 组件
参数上面已经给过了;
设置合适参数;
最后要给他添加一个脚本
脚本比较简单;
public Transform target=null;
private void Start()
{
if (target != null)
{
GetComponent<NavMeshAgent>().destination = target.position;
}
}
如果报错的话 在using上添加索引unity.Engine.AI;
然后在unity中把刚刚创建的Target物体托上去;
至于代码中意思
先给他赋初始值为空(null);
然后如果目标物体不是空让它自动寻路;
直到到达 所要到达的位置
寻路组件就这么多
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。