public void UpdateLevel() { if (CScore.GetScore() >= Level[iLevel].iGoal) { if (isEnd) // 終了 { CPauser.Pause(); CScore.AddFScore(); CScore.AddFScore(); CScore.AddFScore(); CSceneManager CSM = GameObject.Find("FadeCanvas").GetComponent <CSceneManager>(); CSM.OnChangeScene_Result(); } else { // 現在時間取得 float endtime = gTimer.GetComponent <CNumberManager>().Get_fTime(); // ステージクリア時間算出 float totaltime = endtime - fStartTime; int timelimit = Level[iLevel].iMinutes * 60 + Level[iLevel].iSeconds; Level[iLevel].fTotalTime = totaltime; if (totaltime > timelimit || iLevel >= 5) // 制限時間内にクリアしなかったら次のステージで終了 { isEnd = true; } // スタート時間更新 fStartTime = endtime; iLevel++; gScore.GetComponent <CScore>().Set_iScoreParam(Level[iLevel].iGoal); CObjectManager.Instance.Create(Level[iLevel].iObjectNum - Level[iLevel - 1].iObjectNum); } } }
void Update() { // 総合時間がなくなったら処理を飛ばす if (fTotalTime <= 0.0f) { return; } // 総合時間の更新 fTotalTime = fMinute * 60 + fSeconds; // 総合時間の減算 fTotalTime -= Time.deltaTime; // 分数の算出 fMinute = (int)fTotalTime / 60; // 秒数の算出 fSeconds = fTotalTime - fMinute * 60; if ((int)fSeconds != (int)fOldSeconds) { Debug.Log("通った"); // 子オブジェクトがタイマーのスプライトなのでそれを消す GameObject obj = GameObject.Find("PFB_TimerController"); foreach (Transform child in obj.transform) { Destroy(child.gameObject); } // 一番左のゼロ CreateNum(0, 3.5f); // コロンごり押し生成 CreateColon(0.0f); // 分割 CreateNum((int)fMinute, 2.0f); // 秒数の幅調整用 if ((int)fSeconds >= 10) { CreateNum((int)fSeconds, -1.3f); } if ((int)fSeconds < 10) { CreateNum((int)fSeconds, -2.0f); CreateNum(0, -0.4f); } } // 一個前の秒数に現在の時間を代入 fOldSeconds = fSeconds; // 総合時間がなくなったらリザルト画面に遷移する if (fTotalTime <= 0.0f) { script.OnChangeScene_Result(); } }