unity-小车寻路(二)

本文介绍使用Unity的Navigation模块及射线检测实现智能小车的自动寻路和动态避障功能,包括路径烘焙、最优路线计算、行人避让及红绿灯响应等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    前段时间使用官方的例子来实现小车寻路,虽然具体功能实现了,但是有一些问题,比如小车在点与点的转换时转向十分突兀,而且需要很多点才能实现一个转弯,而且很容易与其他物体发生碰撞。且无法实现动态避障。

    在这些问题的基础上,我不得不重新思考寻路问题,后来还是使用unity自带模块navigation寻路模块以及射线映射基本上解决了所有问题,具体思路是:

    首先,选择路径进行烘培,烘焙的路径将作为可行区域。设置一个目标点,和前面思路一样,设置多个路径点切换。不同的是,小车会借助navigation模块自动在可行区域寻找最优路线,并借助射线来平滑计算需要调整的角度,当然需要在转弯处设置制动带,这样不会因为小车行驶速度过快发生事故,这样大大减少我们前面要设置很多很多个点才能实现转弯功能。这样就可以实现自动寻路了。

    其次,我们要实现避开行人,我使用的是射线检测的方式,车辆前方添加一组扇形区域的射线,它会碰撞到物体时给你反馈,当是people时,计算距离,当小于多少时自动刹车待行人通过继续行走,若一段时间还是无法通过,则选择绕行其他可行区域。还需要实现红路灯的功能,这个就比较简单,利用navigation的动态壁障就可以实现,类似机关。给某段路径添加障碍物的组件,并使用脚本使它在一段时间内setActive,这样就可以达到效果。

    unity中的AI可以简单可以复杂,对于相对目标行为的靠近、离开、抵达、追逐、逃避、随机徘徊等,对于AI角色对游戏世界的感知,自主决策(有限状态机),复杂决策(行为树)等,我会继续研究。

    我在自己搭建路径的时候,由于是网上找的一节一节的道路,run的时候在道路接口处发生明显的抖动,这个bug需要研究研究。

    具体请参考GitHub中AIcar2部分。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值