コード例 #1
0
        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;
        }
コード例 #2
0
        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));
            }
        }