public void QueuePopup(EPopupTypes _popupType, PopupData _popupData) { PopupQueueData newQueue = new PopupQueueData(_popupType, _popupData); popupQueue.Enqueue(newQueue); TryShowNext(); }
private void TryShowNext() { if (IsShowingPopup) { return; } if (popupQueue.Count == 0) { return; } PopupQueueData data = popupQueue.Dequeue(); if (!popupMap.ContainsKey(data.PopupType)) { TryShowNext(); return; } activePopup = popupMap[data.PopupType]; activePopup.Show(data.PopupData); }