Unity GameAI-(8)Path Following

Path Following

路径跟随

  • 原理:
    • Path following 行为产生一个操控力,使交通工具沿着构建路径的一系列路点(Waypoint)移动。
    • 路径类型
    • 线性-有起点和终点
    • 循环型- 封闭路径
Paste_Image.png
  • wander也可以用这种方式来实现,即把这些路径点让智能体来随机选取进行移动。

实现的原理

  • 判断下一个节点是不是终点,如果是终点就采取arrival行为,不是终点就将target的节点数组++然后采取Seek行为。
Paste_Image.png

Unity 中的代码实现

  • 首先我们需要在场景中为智能体添加路径点(transform)
Paste_Image.png
  • 接着给智能体添加pathFollowing的脚本,并且为脚本添加需要使用到的字段
Paste_Image.png
  • 将场景中的wayPoint添加到pathPoints的数组里
Paste_Image.png
  • 接着进行操控力的获取
Paste_Image.png
  • 如果当前的目标点已经是最后一个点了,进行arrival行为,从而开始进行判断,智能体是否到达了减速半径以内如果没有到达就用Seek,到达了减速半径则使用arrival(arrival里直接包括了Seek行为)。

  • 如果不是最后一个目标点

Paste_Image.png
  • 通过使用dist(距离向量)的模小于0.2f(假设值)来判断已经到达了当前目标点,数组下标++,重置target,继续Seek行为。

  • 通过获得的操控力控制智能体移动

Paste_Image.png
  • 演示:
3.gif

Interpose(插入)

  • Interpose行为返回一个操控力操控角色移到2个智能体(或空间两点,或一个智能体与一个点)的中点。
  • 预测(猜测)算法:得到连接两智能体当前位置的线的中点,计算:从交通工具到该点的距离/交通工具的最大速度=交通工具走完这段距离的时间T;使用T推断2个智能体未来位置,得到两智能体未来位置的线的中点,最后交通工具使用arrive行为移向该点。

原理图:

Paste_Image.png

C++伪代码:

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上一节介绍了Seek以及Flee,和Seek相对应的还有Arrival操控力行为 Arrival 和Seek的区别...
    Levi_Wan阅读 3,746评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,397评论 19 139
  • 最后 bosco演噶Sheldon俾成双毒死,而成双俾Emma捅死。 阿Tim少同Maple系埋一起, Carme...
    芥末飞瘸鹿阅读 1,592评论 0 0
  • 书名:《接纳不完美的自己》 作者:【美】黛比·福特 书籍介绍 荣格曾问,你究竟愿意做一个好人,还是一个完整的人?每...
    自我迭代的小喆阅读 6,107评论 1 4
  • 凡520当天预约六月份韩式裱花,翻糖蛋糕,糖霜饼干课程的同学们,咱们立减520.任不任性,哈哈~预约课程以付定金为...
    狗头君阅读 1,807评论 0 0