Exemplo n.º 1
0
    /// <summary>
    /// "JumpHeightCounter"の更新処理
    /// </summary>
    void UpdateJumpHeightCounter()
    {
        // ジャンプ高さの結果が出たら
        if (jumpHeightCounter.IsJumpHeightResult)
        {
            // スコアをデータにセット
            playData.SetNowScore(jumpHeightCounter.JumpHeightToKiloMetre);
            playData.SaveData();

            // ステートを"PlayerFalling"に変更する
            stateMachine.SetState(PhaseType.PlayerFalling);
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 更新
    /// </summary>
    void Update()
    {
        // 現在のフェーズの状態により処理を分岐
        switch (nowPhase)
        {
        case PhaseType.WaitAdLoad:            // 広告ロード完了待機

            loadTime += Time.deltaTime;

            // 広告のロードが完了したら次の処理へ
            if (adManager.IsLoaded() || loadTime >= LoadMaxTime)
            {
                // フェードアウト開始
                fadeContoller.OnFade(DisplayFadeContoller.FadeType.FadeOut, DisplayFadeContoller.PanelType.White);

                // FPSをもとに戻す
                Application.targetFrameRate = -1;

                nowPhase = PhaseType.WaitFadeOut;
            }
            break;

        case PhaseType.WaitFadeOut:           // フェードアウト待機

            // フェードアウトが終わったら次の処理へ
            if (fadeContoller.IsFadeEnd)
            {
                // バナー広告を表示
                adManager.ShowBanner();

                //プレイヤーを表示
                playerObj.SetActive(true);

                nowPhase = PhaseType.CountScore;
            }
            break;

        case PhaseType.CountScore:            // スコアカウント中

            // 指定の時間までカウントアップを待機
            countUpWaitCount += Time.deltaTime;
            if (countUpWaitCount > countWaitTime && !scoreCountUp.IsEnd)
            {
                // 指定の時間経過したらカウントアップを開始
                scoreCountUp.enabled = true;
            }

            landingTime += Time.deltaTime;
            // 着地アニメーションの再生時間が指定した時間まで行ったら
            if (landingTime >= LandingCraterCreateTime && craterCreater.enabled)
            {
                // クレーターを生成
                craterCreater.Create();
                // クレーターを消す処理が入ってるので、スクリプトをオフにする
                craterCreater.enabled = false;
            }

            // カウントが終わったら次の処理へ
            if (scoreCountUp.IsEnd)
            {
                // スコアカウントアップ処理終了
                scoreCountUp.enabled = false;

                // リザルト用カンバスを表示
                resultCanvas.SetActive(true);

                // カンバスのアニメーションが終了したら
                if (canvasAnimationEnd.IsEnd)
                {
                    // インタースティシャル広告を表示
                    adManager.ShowInterstitial();

                    // 実績解除できるかチェック
                    achievementController.CheckRelease();

                    nowPhase = PhaseType.ViewResult;
                }
            }
            break;

        case PhaseType.ViewResult:            // リザルト表示中

            // リザルトが終了したら次の処理へ
            if (resultEnd.IsEnd || adVideoRecommender.IsEnd)
            {
                // 次に読むシーンがメインゲームなら黒いパネルでフェードイン開始
                if (nextScene.NextSceneNum == SceneLoader.SceneNum.MainGame)
                {
                    fadeContoller.OnFade(DisplayFadeContoller.FadeType.FadeIn, DisplayFadeContoller.PanelType.Black);
                }
                // そうでなければ白いパネルでフェードイン開始
                else
                {
                    fadeContoller.OnFade(DisplayFadeContoller.FadeType.FadeIn, DisplayFadeContoller.PanelType.White);
                }

                // バナー広告を非表示
                adManager.HideBanner();

                nowPhase = PhaseType.NextScene;
            }
            break;

        case PhaseType.NextScene:             // 次のシーンへ

            // フェードインが終わったら次のシーンへ移行
            if (fadeContoller.IsFadeEnd)
            {
                //
                playData.SaveData();

                // シーンをロード
                nextScene.ChangeNextScene();

                nowPhase = PhaseType.SceneEnd;

                // リザルトBGMを停止する
                AudioPlayer.instance.StopBgm();
            }
            break;

        case PhaseType.SceneEnd:              // シーンの終了
            // 処理なし
            break;
        }
    }