/// <summary> /// Действия в случае проигрыша /// </summary> private void PerformOnLose() { DestroySessionData(); _gameOverComponent = ActualLinkedObjectPoolSupportData.LinkedPoolManager.GetObject <GameOverScreenComponent>( typeof(GameOverScreenComponent)).Init(ParentGameObject); _gameOverComponent.OnScreenConfirmed += EndGameSession; }
/// <summary> /// Полное завершение игровой сессии для последующего перехода обратно в главное меню /// </summary> private void EndGameSession() { if (_gameOverComponent != null) { _gameOverComponent.OnScreenConfirmed -= EndGameSession; _gameOverComponent.DisableAndSendToPool(); _gameOverComponent = null; } //same disposal for the results screen DestroyResultsScreen(); OnGameSessionEnd?.Invoke(); }