Exemplo n.º 1
0
    //////////////////////////////////////////////////////////////////////////////////////////////////
    void Start()
    {
        Time.timeScale = 0;

        // Инициализация
        obsGenerator = this.GetComponent <ObstacleGenerator>();
        ImportSettings();
        scoreList   = new int[scaleOfGeneration];
        infoManager = bigBrother.GetComponent <InformationManager>();

        // Инициализация записи статистики
        statPath = infoManager.StatInit();

        // Начальный спаун препятствий
        sectorPosMap = new List <Vector3>();
        if (generateObsNextGen)
        {
            obsGenerator.Start();
            obsGenerator.SpawnObstacles(Vector3.zero);
            sectorPosMap.Add(Vector3.zero);
            generateObsNextGen = false;
            enableGenerateObs  = true;
        }
        obsGenerator.Start();

        // Сброс положения конечной точки
        ResetTarget(targetInCentre);

        // Спаун машин и инициализация вспомогательных переменных
        car         = new List <GameObject>();
        brain       = new Brain[scaleOfGeneration];
        prevPos     = new Vector3[scaleOfGeneration];
        prevRot     = new Vector3[scaleOfGeneration];
        radVectM    = new float[scaleOfGeneration];
        maxRadVectM = new float[scaleOfGeneration];
        maxScore    = new int[scaleOfGeneration];
        travelDists = new float[scaleOfGeneration];
        fullRotats  = new float[scaleOfGeneration];
        for (int i = 0; i < scaleOfGeneration; i++)
        {
            travelDists[i] = 0;
            fullRotats[i]  = 0;
            radVectM[i]    = 0;
            maxRadVectM[i] = 0;
            maxScore[i]    = 0;
            prevPos[i]     = Vector3.zero;
            prevRot[i]     = Vector3.zero;
            car.Add((GameObject)Instantiate(sampleCar, Vector3.up, Quaternion.identity));
            brain[i] = car[i].transform.GetChild(3).GetComponent <Brain>();
            brain[i].BrainInit();
        }
    }