地图的构建
首先构建地形(地板)
加入Cube作为障碍物。记得挂载NavMeshObstacle
障碍物要设置静态
如果勾选Carve
这个障碍物将在游戏过程中被动态烘焙(动态障碍物)
如果不勾选的话,这个障碍物移动到空旷位置,AI就会撞障碍物
当场景构建好之后,就可以进行烘焙了
顺便看下烘焙后的路径(蓝色为可行走部分)
Carve与普通障碍在移动后的区别
可明显发现,Carve即使被移动了,他附近依然不可通过。而普通障碍物移动之后会挡在行进路径上。开发过程中动态障碍一定要注意
路径烘焙好了,为Player增加NavMeshAgent组件
然后可以利用unity内置UI进行寻路了
寻路脚本
public class AI : MonoBehaviour
{
NavMeshAgent Player;
public Transform test;//目标点
public void OnEnable()
{
Player= GetComponent<NavMeshAgent>();
}
void Update()
{
Player.SetDestination(test.position);//内置寻路方法
}
}
将脚本挂载给Player.将目标点拖进Test.现在Player会在躲避障碍物的前提下追踪目标点了
效果:
QQ录屏20220705175941