private IEnumerator ShowSubpanelOperation(UIPanelType ownerType, UIPanelType type, DataProvider data = null) { if (m_operationCoroutine != null) { StopCoroutine(m_operationCoroutine); } if (m_panels.ContainsKey(type)) { ShowPanelData(type, data); var panel = m_panels[type]; if (m_panels[ownerType].SubpanelHolder != null) { SetSubPanel(m_panels[ownerType], panel); } OnPanelShowed?.Invoke(panel); Log("OnPanelShowed " + panel.PanelType); } else { yield return(StartCoroutine(ShowPanelAsync(ownerType, type, data))); } m_operationCoroutine = null; }
protected virtual void InstantShowPanel(UIPanelType type, DataProvider data = null) { Log("InstantShowPanel " + type); if (m_panels.ContainsKey(type)) { var panel = m_panels[type]; panel.gameObject.SetActive(true); if (panel.PanelState == UIPanelState.Deactivate || panel.PanelState == UIPanelState.Show) { if (panel.PanelState == UIPanelState.Deactivate) { panel.PanelState = UIPanelState.Show; } panel.UpdateData(data); Log("Just UpdateData " + panel.PanelType); } else { panel.ShowData(data); panel.UpdateData(data); } OnPanelShowed?.Invoke(panel); Log("OnPanelShowed " + panel.PanelType); } else { StartCoroutine(InstantShowPanelAsync(type, data)); } }