/// <summary> /// "JumpHeightCounter"の更新処理 /// </summary> void UpdateJumpHeightCounter() { // ジャンプ高さの結果が出たら if (jumpHeightCounter.IsJumpHeightResult) { // スコアをデータにセット playData.SetNowScore(jumpHeightCounter.JumpHeightToKiloMetre); playData.SaveData(); // ステートを"PlayerFalling"に変更する stateMachine.SetState(PhaseType.PlayerFalling); } }
/// <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; } }