public static void ShowPopup(
            string messageText,
            bool enableButton = false,
            string buttonText = "OK",
            Sprite popupImage = null,
            Action onClose    = null)
        {
            if (_popupWindow == null)
            {
                GameObject popupObject = Object.Instantiate(Resources.Load("PopupWindow") as GameObject);
                _popupWindow = popupObject.GetComponent <PopupWindow>();
            }

            if (_popupQueue == null)
            {
                _popupQueue = new List <PopupParameters>();
            }

            Action onCloseOverride = onClose;

            onCloseOverride += UpdatePopupQueue;

            PopupParameters popupPars = new PopupParameters(messageText,
                                                            enableButton,
                                                            buttonText,
                                                            popupImage,
                                                            onCloseOverride);

            _popupQueue.Add(popupPars);

            if (_popupQueue.Count == 1)
            {
                _popupWindow.Show(popupPars.MessageText,
                                  popupPars.EnableButton,
                                  popupPars.ButtonText,
                                  popupPars.PopupImage,
                                  popupPars.OnClose);
            }
        }
        private static void UpdatePopupQueue()
        {
            if (_popupQueue.Count == 0)
            {
                return;
            }

            _popupQueue.Remove(_popupQueue.First());

            if (_popupQueue.Count == 0)
            {
                return;
            }

            PopupParameters popupPars = _popupQueue.First();

            _popupWindow.Show(popupPars.MessageText,
                              popupPars.EnableButton,
                              popupPars.ButtonText,
                              popupPars.PopupImage,
                              popupPars.OnClose);
        }