的当てゲームにタイマー(制限時間)を実装する【Unity】

お久しぶりです。もう10月も終わっちゃいますね。

もっとペースアップしながらゲーム制作に取り組まないと、自分にとってもあまり良くないと思う今日この頃ですが、都合よくいかないですね。

まぁ、制作できる時間を大事にして集中したいと思います。

というわけで今回は、制作中の的当てゲームに制限時間を実装したいと思います。

現状は無限にボールを飛ばせるため、ルールを設けるようにします。

スポンサーリンク

的当てゲームに制限時間を実装する

テキストの配置

まずは、どこにタイマーを表示させるかを決めます。

まぁ、オーソドックスに左上か右上あたりになると思います。表示する場所によっては、プレイに支障をきたす場合もあるので、影響の少ない場所にしましょう。

ヒエラルキーウィンドウを右クリックし「UI」→「Text」を選択します。

テキストが表示されるので、好きな場所に配置しましょう。

的当てゲームに制限時間を配置

私の場合は、上の画像のように、左上に配置しています。

テキストのフォントやサイズは、インスペクターのText(Script)項目で変更してください。

スクリプトを作成

次に、スクリプトを作成していきます。

時間に関するスクリプトなので、新しいスクリプトを用意しましょう。名前は「Timer.cs」等に。

タイマーを実装するスクリプト

私はこのように記述しました。

まずは、「using UnityEngine.UI」を宣言して、Textクラスを使えるようにします。

9行目のtimeTextは頭に「public」を付けてアウトレット接続が出来るようにしておきます。

制限時間は、10行目で60秒に設定しています。ここでfloat型を指定しているのは、この後出てくるTime.deltaTimeがfloat型を扱うからですね。intにするとエラーになります。

11行目で宣言している「retime」は残り時間を意味しています。

Updateメソッド内で色々と処理を行うわけですが、まずはフレーム毎にTime.deltaTimeを使って秒数を引いていきます。

23行目で、int型にキャストしてretimeに代入します。これで小数が表示されないようになります。

24行目でToString()メソッドを使って、文字列にてテキストを表示すればOKです。

別に小数を表示しても良いという場合は、23行目をコメントアウトして、24行目の「retime」の部分を「TotalTime」に変更することで小数も表示されます。

空のオブジェクトを作成し、スクリプトをアタッチ

スクリプトが出来たら、ヒエラルキーウィンドウから右クリックし「Create Empty」を選択して空のオブジェクトを作成します。

先ほど作ったスクリプトを「GameObject」にアタッチ。

テキストのアウトレット接続

次に、GameObjectを選択した状態でTextをアウトレット接続で代入しましょう。

ここまで出来たら、ゲームを実行して動作を確認してください。

タイマーを導入した的当てゲーム

60秒からスタートして、ちゃんとカウントダウンされていますね。

次回は、スコアについて考えていきます。今回はこの辺で。