Ejemplo n.º 1
0
        protected override Vector2 DoForceCalculation()
        {
            Vector2 steeringForce = Vector2.zero;

            for (int i = 0; i < neighbours.NeighbourCount; i++)
            {
                Collider2D neighbour = neighbours.GetNeighbour(i);

                Vector2 toNeigh = transform.position - neighbour.transform.position;
                steeringForce += toNeigh.normalized / toNeigh.magnitude;
            }

            return(steeringForce);
        }
Ejemplo n.º 2
0
        protected override Vector2 DoForceCalculation()
        {
            Vector2 avgHeading = Vector2.zero;

            for (int i = 0; i < neighbours.NeighbourCount; i++)
            {
                Collider2D neighbour = neighbours.GetNeighbour(i);
                avgHeading += (Vector2)neighbour.transform.up;
            }

            if (neighbours.NeighbourCount > 0)
            {
                avgHeading /= neighbours.NeighbourCount;
                avgHeading -= (Vector2)transform.up;
            }

            return(avgHeading);
        }
Ejemplo n.º 3
0
        protected override Vector2 DoForceCalculation()
        {
            Vector2 centerOfMass  = Vector2.zero;
            Vector2 steeringForce = Vector2.zero;

            for (int i = 0; i < neighbours.NeighbourCount; i++)
            {
                Collider2D neighbour = neighbours.GetNeighbour(i);

                centerOfMass += (Vector2)neighbour.transform.position;
            }

            if (neighbours.NeighbourCount > 0)
            {
                centerOfMass /= neighbours.NeighbourCount;

                steeringForce = seek.CalculateForce(centerOfMass);
            }

            return(steeringForce);
        }