示例#1
0
        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);
        }
    }