【Unity开发】随手记:自动寻路技术
写在前面
本系列为笔者实在是不想写作业,来通过写博客勉励自己一下。参考教程为《Unity 3D游戏开发》(中国工信出版集团),大部分代码和注释来源于这个博主,姐妹万岁哈哈哈哈🤣。
文章中只放代码(随缘附少量基础讲解和效果),项目操作可以自行百度or留言,防止太长一篇1~3个案例,案例来源于哈工大(威海)王峥老师布置的作业。
自动寻路技术
包括:跨断桥,绕障碍和跳屋顶。这里只演示绕障碍。
- 首先创建地形Plane,往其中添加障碍块等地形。在Navigation界面障碍块设置为Not Walkable,将地形设置为Walkable
- Bake一下
- 为要移动物体添加代理,默认参数即可
- 编写脚本,使得立方体从当前位置走向小球位置
void Start()
{
navMeshAgent = this.GetComponent<NavMeshAgent>(); //获取挂在该脚本的对象上的代理器组件
navMeshAgent.speed = MoveSpeed; //设置寻路器的行走速度
if (navMeshAgent == null)
{
navMeshAgent = gameObject.AddComponent<NavMeshAgent>();
}
}
void Update()
{
if (navMeshAgent != null)
{
navMeshAgent.SetDestination(target.position); //设置寻路目标
}
}