Unity GameAI-(10)群体操控行为

群体操控行为

  • 模拟真实的群体行为,如避难,排队等。
    • 分离 Separation
    • 对齐 Alignment
    • 聚集 Cohesion

1. 分离(将群体分开)

  • 首先需要一个基础的雷达类---cache
  • 主要用于记录角色周围一定范围内的角色。
  • 雷达类原理是通过collider对周围的GameObject进行添加到List中的,所以周围需要进行控制的群体必须具有Collider
Unity GameAI-(10)群体操控行为_第1张图片
1.png
  • 分离Separation原理图:
  • 灰色区域为雷达圈
Unity GameAI-(10)群体操控行为_第2张图片
2.png
Unity GameAI-(10)群体操控行为_第3张图片
3.png
  • 关键点SteeringForce,与物体之间相离的距离成反比,物体离得越远相对的排斥力也就越小。

2. 对齐Alignment

Unity GameAI-(10)群体操控行为_第4张图片
4.png
  • 将所有物体的Forward向量进行获取,计算平均的朝向除以它们的总个数来得到度量单位。

  • 图中的绿色向量为它们的平均朝向,粗红色的向量为最后得到的操控力。

Unity GameAI-(10)群体操控行为_第5张图片
5.png

3. 聚集 Cohesion

  • 聚集的原理: 需要一个聚集点
  • 聚集的实现: 将所有需要聚集的物体的position+在一起,在除以它们的个数得到它们聚集的中心点,在使用Seek行为。
Unity GameAI-(10)群体操控行为_第6张图片
Paste_Image.png
Unity GameAI-(10)群体操控行为_第7张图片
Paste_Image.png

你可能感兴趣的:(Unity GameAI-(10)群体操控行为)