3 commonly seen flock behaviours:
Seperation/Alignment/Cohesion
分离 队列 聚合。简单集群的三种状态。
分离:当前位置-目标位置=分离力的向量
foreach(GameObject neighbor in sperationNeighbors)
{
Vector3 dir = transform.position - neighbor.transform.position;
separationForce += dir.Normalize()/dir.magnitude;
//magnitude是长度,代表两点之间的距离
}
separationForce *= separationWeight;
权重用来控制整体的影响,如果物理计算得到的力没有达到预期,则乘以权重。
此处增加了一个权重public float SperatorWeight = 0f;
U3D中定时器函数 InvokeRepeating(函数名,隔多少时间后调用,每次调用间隔时间)
获取球体范围内的碰撞体
Physics.OverlapSphere(起始点,半径);