private void Start() { if (!GameSaveManager.instance.shouldBeLoadedFromFile) { if (PlayerPrefs.HasKey("Difficulty")) { difficulty = PlayerPrefs.GetInt("Difficulty"); switch (difficulty) { case 0: ColoursAvailable = 3; break; case 1: ColoursAvailable = 5; break; case 2: ColoursAvailable = 7; break; case 3: ColoursAvailable = 9; break; } gui.SetDifficulty(difficulty); } List <Vector2> takenPositions = new List <Vector2>(); while (BallsToSpawn > 0) { int randomX = Random.Range(0, grid.GridSizeX); int randomY = -Random.Range(0, grid.GridSizeY); int colorIndex = Random.Range(0, ColoursAvailable); if (!takenPositions.Contains(new Vector2(randomX, randomY))) { BallsToSpawn--; var kulka = Instantiate(PrefabKulki, new Vector2(randomX, randomY), Quaternion.identity); kulka.SetColor(BallColours[colorIndex], colorIndex); lastBallAdded = kulka; AllBalls.Add(kulka); takenPositions.Add(new Vector2(randomX, randomY)); } } NextColors.Clear(); NextColors.Add(Random.Range(0, ColoursAvailable)); NextColors.Add(Random.Range(0, ColoursAvailable)); NextColors.Add(Random.Range(0, ColoursAvailable)); gui.UpdateNextColors(); StartCoroutine(WaitForCheck()); } else { GameSaveManager.instance.LoadGame(); gui.UpdateScore(); NextColors.Clear(); NextColors.Add(Random.Range(0, ColoursAvailable)); NextColors.Add(Random.Range(0, ColoursAvailable)); NextColors.Add(Random.Range(0, ColoursAvailable)); gui.UpdateNextColors(); } }