// Use this for initialization void Start() { if (string.IsNullOrEmpty(m_StartScene) == false) { UnityEngine.SceneManagement.SceneManager.LoadScene(m_StartScene, UnityEngine.SceneManagement.LoadSceneMode.Single); } // if (Application.isPlaying == true && Network.PlayerInfo.can_cheat == true) // { // SRDebug.Instance.IsTriggerEnabled = true; // } UpdateNotify(false); //更新最新的信息 if (CurrentGameMenu == GameMenu.IDLE) //空闲状态 { MenuInfo menu = LoadMenu(GameMenu.MainMenu, new MenuParams()); //初始化主场景 ChangeBG(menu); //切换背景 menu.SetActive(true); //激活主场景 StackMenu(menu); //将主场景入栈 } else //非空闲状态 { MenuInfo menu = GetCurrentMenu(); //获取当前的场景 ChangeBG(menu); //切换背景 menu.Init(); //初始化当前的场景 } PushManager.Instance.ReloadDefaulLocalNotifiation(); }
public void ChangeMenu(GameMenu gameMenu, MenuParams parms) //切换场景 { MenuInfo currentMenu = GetCurrentMenu(); //得到当前的场景 if (gameMenu == currentMenu.menu) //如果就是切换到当前的场景那么就把当前的场景激活 { if (parms != null) { currentMenu.SetParm(parms); //重新的设置参数 currentMenu.SetActive(true); //激活 currentMenu.Init(); //初始化 } else { currentMenu.UpdateMenu(); //跟新状态 } ChangeBG(currentMenu); //切换背景 return; } if (currentMenu != null) { if (parms.bAdditive == false) { if (parms.bStack == false) //表示上面三种长存的界面是长存在栈中的 { PopMenu(); RemoveMenu(currentMenu); } else { currentMenu.Uninit(false, false); currentMenu.SetActive(false); } } } switch (gameMenu) { case GameMenu.Dungeon: case GameMenu.DungeonInfo: m_MenuStack.RemoveAll(e => e.menu == gameMenu); break; } MenuInfo newMenu = LoadMenu(gameMenu, parms); newMenu.IsBack = false; StackMenu(newMenu); ChangeBG(newMenu); if (m_TopFrame != null) { m_TopFrame.Init();//会在这里面来判断该显示top操作界面上面的东西 } }
public bool BackMenu(bool bInit = true, bool check = true) //退格到上个场景 { while (m_MenuStack.Count > 1) { if (check == true && GetCurrentMenu().CheckBackMenuAvailable() == false) { return(false); } MenuInfo currentMenu = PopMenu(); //取出最栈中最上面的预设体并且删除 MenuInfo newMenu = GetCurrentMenu(); //得到当前的场景就是退格前的场景的前一个 在这里完成了 退格的操作 RemoveMenu(currentMenu); //移除掉当前的这个场景 newMenu.IsBack = true; //就是一个状态为 if (bInit) { //newMenu init newMenu.SetActive(true); if (newMenu.Init() == false) { continue; } ChangeBG(newMenu); if (m_TopFrame != null) { m_TopFrame.Init(); } } return(true); } return(false); }