Example #1
0
    private Vector2 Alignement(List <Transform> otherLocalBoids)
    {
        Vector2 dir = Vector2.zero;

        foreach (Transform localBoid in otherLocalBoids)
        {
            BoidScript bs = localBoid.GetComponent <BoidScript>();
            dir += bs.velocity;
        }
        dir /= otherLocalBoids.Count;
        return(dir);
    }
Example #2
0
    bool checkColour(BoidScript b, BoidScript c)
    {
        if (b.gameObject.tag == c.gameObject.tag)
        {
            return(true);
        }

        else
        {
            return(false);
        }
    }
Example #3
0
    public List <BoidScript> GetOtherBoidsInFOV(BoidScript obj)
    {
        List <BoidScript> retBoids = new List <BoidScript> ();

        foreach (BoidScript boid in boids)
        {
            if (boid == obj)
            {
                continue;
            }
            Vector3 diff = boid.Position - obj.Position;
            if (diff.magnitude <= BoidFOV)
            {
                retBoids.Add(boid);
            }
        }
        return(retBoids);
    }
Example #4
0
    public List <IObject> GetVirtualBoidsOnWall(BoidScript obj)
    {
        List <IObject> boids = new List <IObject> ();
        float          d;

        d = Up.GetDistanceToPoint(obj.transform.localPosition);
        if (d <= BoidFOV)
        {
            boids.Add(new VirtualBoid(obj.Position - d * Up.normal));
        }
        d = Down.GetDistanceToPoint(obj.transform.localPosition);
        if (d <= BoidFOV)
        {
            boids.Add(new VirtualBoid(obj.Position - d * Down.normal));
        }
        d = Left.GetDistanceToPoint(obj.transform.localPosition);
        if (d <= BoidFOV)
        {
            boids.Add(new VirtualBoid(obj.Position - d * Left.normal));
        }
        d = Right.GetDistanceToPoint(obj.transform.localPosition);
        if (d <= BoidFOV)
        {
            boids.Add(new VirtualBoid(obj.Position - d * Right.normal));
        }
        d = Forward.GetDistanceToPoint(obj.transform.localPosition);
        if (d <= BoidFOV)
        {
            boids.Add(new VirtualBoid(obj.Position - d * Forward.normal));
        }
        d = Back.GetDistanceToPoint(obj.transform.localPosition);
        if (d <= BoidFOV)
        {
            boids.Add(new VirtualBoid(obj.Position - d * Back.normal));
        }
        return(boids);
    }
Example #5
0
    Vector3 boundingBox(BoidScript b)
    {
        int     Xmin = 1, Xmax = 25, Ymin = -1, Ymax = 1, Zmin = 1, Zmax = 25;
        Vector3 v = new Vector3(0, 0, 0);

        if (b.transform.position.x < Xmin)
        {
            v.x += 0.5f;
        }

        else if (b.transform.position.x > Xmax)
        {
            v.x += -0.5f;
        }
        if (b.transform.position.y < Ymin)
        {
            v.y += 0.1f;
        }

        else if (b.transform.position.y > Ymax)
        {
            v.y += -0.1f;
        }

        if (b.transform.position.z < Zmin)
        {
            v.z += 0.5f;
        }

        else if (b.transform.position.z > Zmax)
        {
            v.z += -0.5f;
        }

        return(v);
    }
 public void addBoid(BoidScript b)
 {
     boids.Add(b);
 }