예제 #1
0
 public void Reset()
 {
     m_IsTransition = false;
     m_PopupPanelList.Clear();
     m_CurrentPanel  = null;
     m_PreviousPanel = null;
 }
예제 #2
0
 private void StartPanel(GamePanelInfo panel)
 {
     m_CurrentPanel = panel;
     foreach (PanelType key in m_CurrentPanel.panels.Keys)
     {
         if (!m_CurrentPanel.panels[key].IsIn)
         {
             if (!m_CurrentPanel.panels.ContainsKey(PanelType.Right) && key == PanelType.Left)
             {
                 m_CurrentPanel.panels[key].Initialize(() => SetTransition(false));
             }
             else if (key == PanelType.Right)
             {
                 m_CurrentPanel.panels[key].Initialize(() => SetTransition(false));
             }
             else
             {
                 m_CurrentPanel.panels[key].Initialize();
             }
         }
         else
         {
             m_CurrentPanel.panels[key].OnChanged();
         }
     }
 }
예제 #3
0
 public void Play()
 {
     NicePlay.Utilities.DebugLog("Play = " + gamePanelType);
     gamePanelInfo = new GamePanelInfo(gamePanelType, gamePanels);
     GamePanelManager.Instance.Play(gamePanelInfo);
 }
예제 #4
0
    public void Play(GamePanelInfo panel)
    {
        Debug.Log("nowpanel status" + m_IsTransition);
        if (!m_IsTransition)
        {
            SetTransition(true);
            if (m_CurrentPanel != null)
            {
                if (m_CurrentPanel.type == panel.type)
                {
                    SetTransition(false);
                }
                m_PreviousPanel = m_CurrentPanel;

                for (int i = 0; i < (int)PanelType.Count; i++)
                {
                    UnityAction tempAction = null;
                    if (panel.panels.ContainsKey((PanelType)i))
                    {
                        switch ((PanelType)i)
                        {
                        case PanelType.Right:
                        {
                            tempAction = () => StartPanel(panel);
                            break;
                        }

                        case PanelType.Left:
                        {
                            if (!panel.panels.ContainsKey(PanelType.Right) || !m_PreviousPanel.panels.ContainsKey(PanelType.Right))
                            {
                                tempAction = () => StartPanel(panel);
                            }
                            break;
                        }
                        }

                        if (m_PreviousPanel.panels.ContainsKey((PanelType)i) && m_PreviousPanel.panels[(PanelType)i] != panel.panels[(PanelType)i])
                        {
                            m_PreviousPanel.panels[(PanelType)i].Out(tempAction);
                        }
                    }
                    else
                    {
                        switch ((PanelType)i)
                        {
                        case PanelType.Top:
                        case PanelType.Bottom:
                        case PanelType.Background:
                            //case PanelType.Chest:
                        {
                            break;
                        }

                        default:
                        {
                            if (m_PreviousPanel.panels.ContainsKey((PanelType)i))
                            {
                                m_PreviousPanel.panels[(PanelType)i].Out(tempAction);
                            }
                            break;
                        }
                        }
                    }
                }
            }
            else
            {
                StartPanel(panel);
            }
        }
    }