Exemplo n.º 1
0
    /// <summary>
    /// なんちゃってリザルト画面
    /// </summary>
    public void GotoResultScene()
    {
        // ゲームモードがNormalの場合
        if (SaveClass.GetGameMode())
        {
            // ブロックをすべて消したら
            if (SaveClass.GetIsClear())
            {
                Destroy(ball.gameObject);

                // ゲームクリアテキストの表示
                gameClearText.GetComponent <Text>().enabled = true;

                // ボタンを出す
                CreateButton();
            }

            // 玉が画面外に出たら
            if (!ball.GetComponent <Renderer>().isVisible)
            {
                // 玉を削除
                Destroy(ball.gameObject);
                // ゲームオーバーテキストの表示
                gameOverText.GetComponent <Text>().enabled = true;

                // ボタンを出す
                CreateButton();
            }
        }
        // ゲームモードがInfiniteの場合
        else
        {
            var  ResultScore = ball.DeleteCount * 100;
            bool CanOnlyOnce = false;

            if (!SaveClass.GetGameOver())
            {
                // 玉が画面外に出たら
                if (!ball.GetComponent <Renderer>().isVisible&& !CanOnlyOnce)
                {
                    // 一度きりフラグを折る
                    CanOnlyOnce = true;

                    // ゲームオーバーテキストの表示
                    gameOverTextInfinite.text = ("Game Over\n\nYour Score:" + ResultScore + "\n\nTap to Retry!!");
                    gameOverTextInfinite.GetComponent <Text>().enabled = true;
                }

                foreach (Transform childTransform in blocks.transform)
                {
                    // アクティブなブロックが外に出たら
                    if (!childTransform.GetComponent <Renderer>().isVisible&& childTransform.GetComponent <PrefabStatus>().GetIsActive() && !CanOnlyOnce)
                    {
                        // 一度きりフラグを折る
                        CanOnlyOnce = true;

                        // ゲームオーバーテキストの表示
                        gameOverTextInfinite.text = ("Game Over\n\nYour Score:" + ResultScore + "\n\nTap to Retry!!");
                        gameOverTextInfinite.GetComponent <Text>().enabled = true;
                    }
                }
            }

            // 一度だけ通ってほしいゲーム終了処理
            if (CanOnlyOnce)
            {
                SaveClass.SetGameOver(true);

                // 玉を削除
                Destroy(ball.gameObject);

                // save
                SaveClass.StorePlayerScore(ResultScore);

                // 通信中は何も受け付けないように
                if (!ServerIsBusy)
                {
                    StartCoroutine(WaitServerProcess());
                }
            }
        }
    }