Exemple #1
0
    /// <summary>
    /// Sets the boids behavior to flocking (FlockWander)
    /// </summary>
    void BoidsFlocking()
    {
        var wander = new FlockWander();
        flockState = wander;
        wander.anchor = player.GetComponent<Starling>();
        player.GetComponent<Starling>().maxSpeed = 10f;
        player.transform.Find("Sphere").gameObject.SetActive(true);

        player.transform.position = new Vector3(700f, 90f, 350f);
        player.transform.eulerAngles = new Vector3(0f, 0f, 0f);

        var starlings = GameObject.FindGameObjectsWithTag("Starling");
        for (int i = 0; i < starlings.Length; ++i)
        {
            if( starlings[i].name == "Player" )
                continue;

            var starling = starlings[i].GetComponent<Starling>();
            starlings[i].transform.Find("Sphere").gameObject.SetActive(false);

            starling.state = wander;
            wander.Add(starling);
        }

        wander.Init();

        cameraDistanceFromFlock = 150f;
        cameraAngle = 90f;
    }
Exemple #2
0
    void BoidsFormation(List<Vector3> vertices)
    {
        var formation = new FlockFormation(vertices);
        flockState = formation;
        formation.anchor = player.GetComponent<Starling>();
        player.transform.Find("Sphere").gameObject.SetActive(false);
        player.GetComponent<Starling>().maxSpeed = 15f;

        var starlings = GameObject.FindGameObjectsWithTag("Starling");
        for (int i = 0; i < starlings.Length; ++i)
        {
            if (starlings[i].name == "Player")
                continue;

            var starling = starlings[i].GetComponent<Starling>();
            var sphere = starlings[i].transform.Find("Sphere").gameObject;
            sphere.SetActive(true);
            sphere.transform.localScale = new Vector3(2f, 2f, 2f);
            sphere.GetComponent<Renderer>().material.name = "Water Splash2";
            sphere.GetComponent<Renderer>().material.color = new Color(1, 1, 1,1);

            starling.state = formation;
            formation.Add(starling);
        }

        formation.anchor.maxSpeed *= 0.75f;
        formation.Init();
    }
Exemple #3
0
    void BoidsHuntMiniGame()
    {
        var wander = new FlockGame();
        flockState = wander;

        wander.anchor = player.GetComponent<Starling>();

        player.transform.Find("Sphere").gameObject.SetActive(false);

        player.GetComponent<Starling>().maxSpeed = 30f;
        player.transform.position = new Vector3(1302f, 60f, 562f);
        player.transform.eulerAngles = new Vector3(0f, 0f, 0f);

        var starlings = GameObject.FindGameObjectsWithTag("Starling");
        for (int i = 0; i < starlings.Length; ++i)
        {
            if (starlings[i].name == "Player" )
                continue;

            var starling = starlings[i].GetComponent<Starling>();
            var sphere = starlings[i].transform.Find("Sphere").gameObject;
            sphere.SetActive(true);
            sphere.transform.localScale = new Vector3(4f, 4f, 4f);
            sphere.GetComponent<Renderer>().material.color = new Color(10.0f, 10.0f, 10.0f, 0.99f);

            starling.state = wander;
            wander.Add(starling);
        }

        wander.anchor.maxSpeed *= 0.75f;
        wander.Init();
    }