public void HidePopup(object sender, UIPopup popup) { popup.OnDisposeEvent -= this.OnDisposePopup; var popupType = popup.GetType(); this.DisplayedPopupMap.Remove(popupType); ((IUIStateable)popup).OnExit(sender); this.OnHidePopupEvent?.Invoke(sender, popup); this.UnloadPopup(popup); }
protected virtual void OnDisposePopup(UIPopup popup) { this.HidePopup(this, popup); }
protected virtual void UnloadPopup(UIPopup popup) { Destroy(popup.gameObject); }