public float comfortDistance          = 1; //可接受距离

        Vector2 DoSparate(PawnCheckTeammateController pawn, List <PawnCheckTeammateController> neighbors)
        {
            Vector2 force = new Vector2(0, 0);

            //遍历全部邻居
            foreach (var n in neighbors)
            {
                //检测排除当前entity
                if ((n != null) && (n.Entity != pawn.Entity))
                {
                    //计算当前角色和邻居之间的距离
                    Vector2 toNeighbor = pawn.Entity.GetPosition() - n.Entity.GetPosition();
                    float   length     = toNeighbor.magnitude;
                    //计算这个邻居引起的操控力(排斥力) 大小和距离成反比
                    force += toNeighbor.normalized / length;
                    //如果二者之间距离大于可接受的范围,排斥力再乘以一个限制距离
                    if (length < comfortDistance)
                    {
                        force *= multiplierInsideDistance;
                    }
                }
            }
            return(force);
        }
 public void Separate(PawnCheckTeammateController pawn, List <PawnCheckTeammateController> neighbors)
 {
     Steering += DoSparate(pawn, neighbors);
 }