/
KirRo
/
Test_1
Обзор
Документация
Войти
/
KirRo
/
Test_1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/_Project/Scripts/GameFlowController.cs
69 строк
2 KB
KirRo
Правки. Разделена логика игрока, камеры, UI, Object Pool. Ожидание сервисов ввода и аудио
30 июл 2026, 22:37
30 июл 2026, 22:37
d3abbab
Код
Авторство
О чём код?
using UnityEngine; using UnityEngine.SceneManagement; public class GameFlowController : MonoBehaviour { public delegate void GameFinishedHandler(); public event GameFinishedHandler GameFinished; [SerializeField] private MoneySpawner _moneySpawner; [SerializeField] private CurrencyCounter _currencyCounter; [SerializeField] private GameTimer _gameTimer; private bool _isFinished; private void OnEnable() { _moneySpawner.MoneyCollected += OnMoneyCollected; _moneySpawner.SpawningCompleted += FinishGame; } private void OnDisable() { _moneySpawner.MoneyCollected -= OnMoneyCollected; _moneySpawner.SpawningCompleted -= FinishGame; } private void Start() { StartGame(); } public void RestartGame() { var activeScene = SceneManager.GetActiveScene(); SceneManager.LoadScene(activeScene.buildIndex); } private void StartGame() { _isFinished = false; _currencyCounter.Reset(); _gameTimer.ResetTimer(); _gameTimer.StartTimer(); } private void FinishGame() { if (_isFinished) { return; } _isFinished = true; _gameTimer.StopTimer(); UnlockCursor(); GameFinished?.Invoke(); } private void OnMoneyCollected(int value) { _currencyCounter.Add(value); } private void UnlockCursor() { Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } }