public void Init() { initialised_ = true; targets_ = new Queue <Vector3>(); //find all the available roads GameObject[] roads = GameObject.FindGameObjectsWithTag("Road"); GameObject closestRoad = roads[0]; //find the closest road for (int i = 0; i < roads.GetLength(0); i++) { //GameObject road = roads[i]; float dist = Vector3.Distance(roads[i].transform.position, transform.position); if (dist < Vector3.Distance(closestRoad.transform.position, transform.position)) { closestRoad = roads[i]; } } //chose a target road from them target_ = closestRoad.transform.position; curRoad_ = closestRoad.transform.gameObject; if (curRoad_) { targets_.Enqueue(curRoad_.GetComponent <Road>().GetEnd().transform.position); transform.LookAt(target_); } Personality personality = GetComponent <Personality>(); if (personality) { personality.Init(); } }
void Stage4() { Stage1(); //check if stage1 has complete if (stage_ == 2) { Camera.main.GetComponent <CameraController>().ToggleCompass(false); stage_ = 5; checkpoints_.StartTimer(60.0f); if (phase2Stage_ == 0) { //set up totally defensive cars foreach (GameObject car in GameObject.FindGameObjectsWithTag("Car")) { Personality personality = car.GetComponent <Personality>(); if (personality) { personality.Init(true, 0.0f, 1.0f, 0.0f); } } } else if (phase2Stage_ == 1) { //set up totally aggressive cars foreach (GameObject car in GameObject.FindGameObjectsWithTag("Car")) { Personality personality = car.GetComponent <Personality>(); if (personality) { personality.Init(true, 1.0f, 0.0f, 0.0f); } } } else if (phase2Stage_ == 2) { //set up totally inattentive cars foreach (GameObject car in GameObject.FindGameObjectsWithTag("Car")) { Personality personality = car.GetComponent <Personality>(); if (personality) { personality.Init(true, 0.0f, 0.0f, 1.0f); } } } } }
public void InitParked(Road road) { Start(); initialised_ = true; targets_ = new Queue <Vector3>(); curRoad_ = road.gameObject; GameObject parking = road.GetParkingSpace(); if (parking) { transform.position = parking.transform.position + Vector3.up; transform.LookAt(transform.position + parking.transform.forward, Vector3.up); parking.GetComponent <ParkingSpace>().SetAvailable(false); state_ = CarState.CS_DEPARKING; foreach (Vector3 target in parking.GetComponent <ParkingSpace>().GetExitTargets()) { targets_.Enqueue(target); } target_ = targets_.Dequeue(); Personality personality = GetComponent <Personality>(); if (personality) { personality.Init(); } if (purpose_) { purpose_.SetParkingSpace(parking.GetComponent <ParkingSpace>()); } } else { targets_.Enqueue(road.GetComponent <Road>().GetEnd().position); state_ = CarState.CS_MOVING; transform.position = road.GetPointOnRoad(transform.position); transform.LookAt(targets_.Peek()); } }