/// <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; }
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(); }
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(); }