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