コード例 #1
0
    public void InitGameInfoReady()
    {
        uiGameReady = FindObjectOfType <UiGameReadyController>();
        selectDic   = new Dictionary <GameInfoState, GameInfoRaw>();
        selectDic.Add(GameInfoState.SelectPlayer, selectPlayer);
        selectDic.Add(GameInfoState.SelectMode, selectMode);
        selectDic.Add(GameInfoState.SelectCPU, selectCPU);

        gameInfoState = GameInfoState.SelectPlayer;
        selectPlayer.InitGameInfoRaw();
        selectMode.InitGameInfoRaw();
        selectCPU.InitGameInfoRaw();
        selectCheck.InitGameInfoRaw();

        isDoneRaw  = false;
        isAllCheck = false;
        isCanTouch = false;

        MoveRightToCenter(selectPlayer);
        selectPlayer.UpdateDataByInfoType();
    }
コード例 #2
0
    void Update()
    {
        if (isCanTouch == false)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Escape) || Input.GetButtonDown("Back"))
        {
            // Back.
            return;
        }
        if (Input.GetKeyDown(KeyCode.Return) || Input.GetButtonDown("Submit"))
        {
            if (isDoneRaw == true)
            {
                if (selectCheck.GetCurrIdx() == 0)
                {
                    //back
                    SceneUtil.LoadScene("MainMenu");
                    return;
                }

                if (gameInfoState != GameInfoState.AllSelectDone)
                {
                    return;
                }
            }

            switch (gameInfoState)
            {
            case GameInfoState.SelectPlayer:
                selectPlayer.SelectByCurrIdx();
                uiGameReady.howPlayer = (HowPlayer)selectPlayer.GetCurrIdx();
                ++gameInfoState;
                selectPlayer.SetSelected(false);
                MoveRightToCenter(selectMode);
                break;

            case GameInfoState.SelectMode:
                selectMode.SelectByCurrIdx();
                uiGameReady.gameMode = (GameMode)selectMode.GetCurrIdx();
                ++gameInfoState;
                selectMode.SetSelected(false);

                if (IsSoloTeam(uiGameReady.gameMode, uiGameReady.howPlayer))
                {
                    gameInfoState = GameInfoState.AllSelectDone;
                    selectCheck.UpdateDataByInfoType();
                    uiGameReady.cpuCount = 3;
                    selectCheck.SetSelected(true, true, 1);
                    isDoneRaw  = true;
                    isAllCheck = true;
                    return;
                }
                canGetCpuCount = selectCPU.InitCPUCols(uiGameReady.gameMode, uiGameReady.howPlayer);
                MoveRightToCenter(selectCPU);
                break;

            case GameInfoState.SelectCPU:
                selectCPU.SelectByCurrIdx();
                var selectIdx = selectCPU.GetCurrIdx();     // if canGetCputCnt true -> pvc, pvp Idx
                if (canGetCpuCount == true)
                {
                    if (uiGameReady.howPlayer == HowPlayer.P1)
                    {
                        uiGameReady.cpuCount = selectIdx + 1;
                    }
                    else
                    {
                        uiGameReady.cpuCount = selectIdx;
                    }
                }
                else
                {
                    uiGameReady.cpuCount = 2;
                    if (selectIdx == 0)
                    {
                        uiGameReady.versusMode = P2TeamMode.PL2vsCP2;
                    }
                    else if (selectIdx == 1)
                    {
                        uiGameReady.versusMode = P2TeamMode.PLCPvsPLCP;
                    }
                }
                ++gameInfoState;
                selectCheck.UpdateDataByInfoType();
                selectCPU.SetSelected(false);
                selectCheck.SetSelected(true, true, 1);
                isAllCheck = true;
                isDoneRaw  = true;
                uiGameReady.SetCursorEnable(false);

                break;

            case GameInfoState.AllSelectDone:
                var idx = selectCheck.GetCurrIdx();
                if (idx == 0)
                {
                    // back
                    SceneUtil.LoadScene("MainMenu");
                }
                else if (idx == 1)
                {
                    // next
                    isCanTouch = false;
                    selectCheck.SetSelected(false);
                    selectCheck.gameObject.SetActive(false);
                    uiGameReady.SetGameReadyState(GameReadyState.SelectCharacter);
                }
                break;
            }

            if ((int)gameInfoState <= (int)GameInfoState.SelectMode)
            {
                selectDic[gameInfoState].UpdateDataByInfoType();
            }
        }

        if (ControllerAxisHelper.Instance.IsAxisDownAll(AxisDown.DOWN))
        {
            if (gameInfoState != GameInfoState.AllSelectDone)
            {
                uiGameReady.SetCursorEnable(false);
                isDoneRaw = true;
                selectDic[gameInfoState].SetSelected(false);
                selectCheck.SetSelected(true, true);
            }
        }
        if (ControllerAxisHelper.Instance.IsAxisDownAll(AxisDown.UP))
        {
            if (gameInfoState != GameInfoState.AllSelectDone)
            {
                uiGameReady.SetCursorEnable(true);
                selectCheck.BackRawSelectByCurrIdx(true);
                selectDic[gameInfoState].SetSelected(true);
                selectCheck.SetSelected(false);
                isDoneRaw = false;
            }
        }
    }