コード例 #1
0
    public void SetScreen(BaseScreen.Type type, object[] data = null, bool isFadeIn = false, bool keepPrevScreen = false)
    {
        if (currentScreen != null)
        {
            if (currentScreen.type == type)
            {
                return;
            }
            if (keepPrevScreen)
            {
                previousScreen = currentScreen;
                previousScreen.Hide();
            }
            else
            {
                currentScreen.Close();
            }
        }
        GameObject tempGameObject;

        switch (type)
        {
        case BaseScreen.Type.LOBBY:
            tempGameObject      = NGUITools.AddChild(root, Resources.Load(Global.SCREEN_PATH + "/LobbyScreen/LobbyScreen", typeof(GameObject)) as GameObject);
            tempGameObject.name = "LobbyScreen";
            LobbyScreen         = tempGameObject.GetComponent <LobbyScreen>();
            currentScreen       = LobbyScreen;
            LobbyScreen.Init(data);
            LobbyScreen.Open();
            break;

        case BaseScreen.Type.SELECT_GAME:
            tempGameObject      = NGUITools.AddChild(root, Resources.Load(Global.SCREEN_PATH + "/SelectGameScreen/SelectGameScreen", typeof(GameObject)) as GameObject);
            tempGameObject.name = "SelectGameScreen";
            SelectGameScreen    = tempGameObject.GetComponent <SelectGameScreen>();
            currentScreen       = SelectGameScreen;
            SelectGameScreen.Init(data);
            SelectGameScreen.Open();
            break;

        case BaseScreen.Type.SELECT_ROOM:
            tempGameObject      = NGUITools.AddChild(root, Resources.Load(Global.SCREEN_PATH + "/SelectRoomScreen/SelectRoomScreen", typeof(GameObject)) as GameObject);
            tempGameObject.name = "SelectRoomScreen";
            SelectRoomScreen    = tempGameObject.GetComponent <SelectRoomScreen>();
            currentScreen       = SelectRoomScreen;
            SelectRoomScreen.Init(data);
            SelectRoomScreen.Open();
            break;

        case BaseScreen.Type.LEADERBOARD:
            tempGameObject      = NGUITools.AddChild(root, Resources.Load(Global.SCREEN_PATH + "/LeaderboardScreen/LeaderboardScreen", typeof(GameObject)) as GameObject);
            tempGameObject.name = "LeaderboardScreen";
            LeaderboardScreen   = tempGameObject.GetComponent <LeaderboardScreen>();
            currentScreen       = LeaderboardScreen;
            LeaderboardScreen.Init(data);
            LeaderboardScreen.Open();
            break;

        // when open gamescreen, first element in data will be GameType
        case BaseScreen.Type.GAME_SCREEN:
            currentScreen = SetGameScreen((BaseGameScreen.GameType)data[0], data);
            break;

        case BaseScreen.Type.SLOT_GAME_SCREEN:
            currentScreen = SetSlotGameScreen((BaseSlotMachineScreen.GameType)data[0], data);
            break;
        }
        if (isFadeIn)
        {
            // currentScreen.FadeIn();
            PopupManager.Instance.FadeInScreen();
        }
    }