【Unity】Unityで3D野球盤をつくろう日記 24日目:制限時間が過ぎたら「ゲーム終了」の文字を画面上に表示

投稿日:2018年3月19日
最終更新日:2019年1月19日

(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/

前回は制限時間が0になったときに、ボールの撃ち出しとBGMをストップさせた。今回は、上記の処理と同時にゲーム画面上に「ゲーム終了」という文字を表示させたいと思う。方法は色々ありそうだが、今回はSetActiveを使ってテキストを制御して実現する。

https://docs.unity3d.com/jp/540/ScriptReference/GameObject.SetActive.html

まずはCanvasで右クリックして、UI→Textで新しくTextを追加し、「GameOver」という名前に変更する。次にデカデカと「ゲーム終了」と表示させる・・・つもりが、FontSizeを27を超えると文字が消えてしまう。ググってみると、以下に解決法が載っていた。

http://gowalk.hatenablog.com/entry/2017/04/04/173156

Rect TransformのWidthとHeightを大きくすれば、FontSizeも大きくできた。

このままだと、ゲーム中ずっと文字が表示されたままになってしまうので、以下のScriptを使って文字表示を制御する。
https://gist.github.com/WakkyFree/d7b3a3b291890728c124a2191684fce8/a5886705bb46cd1497fe45c5ff7f3b5a5bc911be
まず、対象のオブジェクトをStartでfalseにして隠す。その後、制限時間(前回、publicにした変数CountDownTimer.gameTimerInt)が0になったら、オブジェクトをtrueにして表示する。ScriptはGameOverの親オブジェクトであるCanvasに付加し、以下の画像のようにInspectorからGamaOverオブジェクトを追加する。
(※GameOverオブジェクト自体にScriptを付加すると、初期化時に非アクティブにした後、再びアクティブにできなくなるので注意)

これで、制限時間が0になったら画面上に文字が表示されるようにすることができた。次回は画面遷移の準備編として、遷移先の画面をつくっていきたいと思う。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください