[unity实例]寻路系统

453 阅读1分钟

一、寻路系统介绍

导航系统是unity自带的系统。它支持从已有的场景几何体创建导航网格,让物体在网格中自动找到目标位置。

二、烘焙寻路区域

步骤一:选择渲染对象

  1. 在需要渲染的地图中,选中所有collider。取消其他物体
  2. 将collider的mesh render都够选上

image.png

步骤二:打开寻路系统

  1. 路径:Window - AI - Navagation

步骤三:点击渲染

  1. 先点击Clear,再点击Baked进行渲染。 image.png

步骤四: 恢复所有设置

  1. 恢复所有物体的显示。注意:collider的mesh render 恢复默认设置。
  2. 在地图上可以看见的蓝色区域。即baked成功

截屏2023-03-12 下午11.40.38.png

步骤五:对要寻路的物体添加 NavMeshAgent组件

  1. 对要寻路的物体添加 NavMeshAgent组件

三、代码实现

//定义寻路对象
private NavMeshAgent nav;

//获得寻路组件
nav = player.GetComponent<NavMeshAgent>();

//对应集成的方法

nav.enabled = true; //激活导航系统
nav.enabled = false;//关闭导航系统

nav.isStopped = true; // 让导航停下来
nav.speed = Constants.PlayerMoveSpeed; //设置速度
nav.SetDestination(npcPosTrans[agc.npcID].position);//设置目标位置