public void Initialize(Action <bool> initializationCallback = null) { GameEventsManager.EndGame.Subscribe(OnGameEnded); GameEventsManager.PauseMenu.Subscribe(OnGamePaused); UIObject uiObject = UIManager.Instance.CreateNewUIObject(UIDialogPrefabId, UILayerId.Overlay); if (uiObject == null) { initializationCallback?.Invoke(false); return; } _uiDialog = uiObject as UIDialog; if (_uiDialog == null) { initializationCallback?.Invoke(false); return; } _uiDialog.Initialize(); HideCurrentDialog(); _uiDialog.OnContinue += OnDialogContinue; initializationCallback?.Invoke(true); }