en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 聚集-CSDN博客
en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 聚集-CSDN博客
演示
思路
1.检测
自然是沿用前两节的检测范围
2.对齐朝向
对齐朝向就是邻居鸟的forward加起来再除总数得到平均数
3.对齐速度
对齐速度自然就是对齐力,所以也是邻居鸟的加和平均数
代码
//得到鸟群的方向和速度
birdForward += bird.transform.forward;
birdVelocity += bird.GetComponent<Rigidbody>().velocity;
//求取平均速度
if (birdNeighbors.Count > 0) {
alignmentForce = birdVelocity / birdNeighbors.Count;
}
施加对齐力
//rb.AddForce(alignmentForce, ForceMode.VelocityChange);
//给予鸟朝向
if (birdForward.magnitude > 0) {
this.transform.forward = birdForward.normalized;
}