public void CreateLevel(string levelName) { IMapSerializator serializator = new FileMapSerializator(levelName); m_Map = serializator.LoadMap(); LoaderMap.CreateMap(m_Map, false); CarSurface surface = new CarSurface(); surface.AddSurface(0, 5f, 1); surface.AddSurface(1, 3f, 0.7f); ICarFactory carFactory = new DefaultCarFactory(); ICar car = carFactory.CreateCar(10, 90, surface); m_Game = new Game(); m_RewardManager = new RewardManager(30, 40); Vector3 carPos = LoaderMap.GetCheckPoint(0).transform.position; m_UnityCar = LoaderCar.CreateCar(m_Game, car, carPos, Vector3.one * 0.5f); m_CheckPointReachChecker = new CheckPointReachChecker(m_UnityCar.transform); m_Game.Start(Time.time); }
IEnumerator CreateCar() { unityCar = UnityCar.CreateNewCar(); int sign = (Random.value < 0.5f?-1:1); unityCar.transform.position = Camera.main.transform.TransformPoint(Vector3.forward * (10 + Random.value * 10) + Vector3.up * 3 + sign * Vector3.right * Random.value * 10); unityCar.transform.eulerAngles = new Vector3(0, Camera.main.transform.eulerAngles.y, 0); Resize(ref cars, cars.Length + 1); cars[cars.Length - 1] = unityCar; settingsMenu.carsNumber = cars.Length; if (carCameras.target == null) { carCameras.target = unityCar.transform; while (unityCar.GetComponent <CarDynamics>() == null) { yield return(new WaitForSeconds(0.02f)); } SelectNextCar(true); } }