public void StartNextGeneration() { // Сортировка бесполезных мозгов //CheckUselessBrains(); // Процедура естественного отбора и размножения NaturalSelection(); // Процедура выключения симуляции по времени или по поколению SelfDestruct(); // Респавн препятствий if (generateObsNextGen) { sectorPosMap.Clear(); //obsGenerator.Start(); obsGenerator.SpawnObstacles(Vector3.zero); sectorPosMap.Add(Vector3.zero); generateObsNextGen = false; enableGenerateObs = true; } // Сброс всех машин ResetCars(); // Сброс положения конечной точки //ResetTarget(true); startOfLastGeneration = Time.time; generationNumber++; // Вывод номера поколения GameObject.Find("Canvas/Generation/Text").GetComponent <Text>().text = "Поколение: " + generationNumber; }
// @todo need to implement the lvl argument public void LevelBegin(int lvl = 1) { lvlDisplay.SetLevel(currLevel); /*obstacleManager.numObstacles = (int)Mathf.Min((float)currLevel, (float)maxObstacles);*/ obstacleManager.SpawnObstacles(); enemyManager.Launch(); ballManager.Enable(); }
////////////////////////////////////////////////////////////////////////////////////////////////// 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(); } }