(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
久しぶりの更新。現状だと、ゲームに時間制限が無く、永遠にゲームが続いてしまう。そこで今回は時間制限を画面上に表示させ、カウントダウンさせるようにしたいと思う。まずは時間制限を表示させるところから。ここは、以前得点を表示させたときと同じ要領で表示を行う。
Canvasに新たにTimeLimitChara、TimeLimitNumという名前のTextを追加して、Inspectorで位置を調整し、適当に画面右上あたりに持ってくる。
あとはスコア表示と同じ要領で、scriptを使ってTimeLimitNumの数字をカウントダウンさせていく。スコア表示ではBallにscriptを付加したけど、今回は特定のobjectの挙動に依存した処理ではない。というわけで、EventSystemオブジェクトにScriptを付加してカウントダウンを実現したいと思う。(今後も特定のobjectに依存しない処理はEventSystemオブジェクトに付加していくつもり)Time.deltaTimeを使うと簡単にできそう。
つくったScriptが以下のCountDownTimer.cs。とりあえず今回はカウントダウンだけさせて、残り時間が0になったときの処理は今度追記したいと思う。
表示は整数にしたかったのでfloatからintにキャストしている。あとは得点表示させたときと同じ要領で、ScriptをEventSystemに付加したうえで、TimeLimitNumをTimeTextにドラッグアンドドロップする。
これで60秒から0秒までのカウントダウンを表示できた。現在の状態だと0秒になってもゲームは続くので、次回は0秒になったときにゲームを終了させる処理を追加したいと思う。