Coroutine end; // ссылка на запущенную корутину, чтобы не проиграть после выигрыша public void WinGame() // в случае выигрыша { if (end == null) // проверяем, была ли уже выиграна или проиграна игра { MainManager.Messenger.WriteMessage("Поздравляем, вы выиграли!"); end = StartCoroutine(BeforeExit()); // запускаем окончание игры через 4 секунды MainManager.ClearData(); } }
public void LoseGame() // в случае проигрыша { if (end == null) { MainManager.Messenger.WriteMessage("Вы проиграли!"); end = StartCoroutine(BeforeExit()); MainManager.ClearData(); } }
public void OpenNewScene() // метод для смены сцены { MainManager.inHouse = false; int index = SceneManager.GetActiveScene().buildIndex; // берем индекс запущенной сцены if (index == 0) { index = 2; // меняем индекс с 0 на 1 или с 1 на 0 } else { index = 0; MainManager.ClearData(); } StartCoroutine(AsyncLoad(index)); // запускаем асинхронную загрузку сцены MainManager.IsInWarmPlace = true; }