public void DestroyScreen(InGameScreens screenName) { for (int i = 0; i < inGameActiveScreens.Count; i++) { if (inGameActiveScreens[i].screenName == screenName) { Destroy(inGameActiveScreens[i].screenObject); inGameActiveScreens.RemoveAt(i); } } }
private bool IsScreenActive(InGameScreens screenName) { for (int i = 0; i < inGameActiveScreens.Count; i++) { if (inGameActiveScreens[i].screenName == screenName) { return(true); } } return(false); }
private ScreenLayer GetScreenLayer(InGameScreens screenName) { switch (screenName) { case InGameScreens.Message: return(ScreenLayer.LAYER2); case InGameScreens.Reconnecting: return(ScreenLayer.LAYER3); case InGameScreens.Loading: return(ScreenLayer.LAYER4); default: return(ScreenLayer.LAYER1); } }
public void ShowScreen(InGameScreens screenName, object[] parameter = null) { int layer = (int)GetScreenLayer(screenName); for (int i = layer + 1; i < screenLayers.Length; i++) { DestroyScreen((ScreenLayer)i); } if (!IsScreenActive(screenName)) { DestroyScreen(GetScreenLayer(screenName)); InGameActiveScreens mainMenuScreen = new InGameActiveScreens(); mainMenuScreen.screenName = screenName; mainMenuScreen.screenLayer = GetScreenLayer(screenName); GameObject gm = Instantiate(screens[(int)screenName], screenLayers[(int)mainMenuScreen.screenLayer]) as GameObject; mainMenuScreen.screenObject = gm; inGameActiveScreens.Add(mainMenuScreen); switch (screenName) { case InGameScreens.TopUp: { gm.GetComponent <TopUpScript>().Init((float)parameter[0]); } break; case InGameScreens.EmojiScreen: { gm.GetComponent <EmojiUIScreenManager>().containerVal = emojiContainerVal; } break; default: break; } } }