群体操控行为
- 模拟真实的群体行为,如避难,排队等。
- 分离 Separation
- 对齐 Alignment
- 聚集 Cohesion
1. 分离(将群体分开)
- 首先需要一个基础的雷达类---cache
- 主要用于记录角色周围一定范围内的角色。
- 雷达类原理是通过collider对周围的GameObject进行添加到List中的,所以周围需要进行控制的群体必须具有Collider
- 分离Separation原理图:
- 灰色区域为雷达圈
- 关键点SteeringForce,与物体之间相离的距离成反比,物体离得越远相对的排斥力也就越小。
2. 对齐Alignment
将所有物体的Forward向量进行获取,计算平均的朝向除以它们的总个数来得到度量单位。
图中的绿色向量为它们的平均朝向,粗红色的向量为最后得到的操控力。
3. 聚集 Cohesion
- 聚集的原理: 需要一个聚集点
- 聚集的实现: 将所有需要聚集的物体的position+在一起,在除以它们的个数得到它们聚集的中心点,在使用Seek行为。