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);
    }