メダル切れになったらコルーチンを使って自動回復する【Unity3D】

手持ちのメダルが0枚になった時にどうするのか考えていきましょう。

現状0枚になってもボタンのクリックでメダルが生成されてしまいます。

この時点でゲームオーバーにするのかという話になってくるんですけど、プッシャーゲームにおけるゲームオーバーって聞いたことない気がするので、どうにかメダルを回復させたいところです。

ワンプッシュで一気に回復するのは、つまらないので徐々に自動回復させたいと思います。

スポンサーリンク

メダル切れになったらコルーチンを使って自動回復させよう

まずは、0枚になったらボタンを押してもメダルを生成しないようにスクリプトを変更します。

・MedalManagerスクリプトの修正

メダル枚数を取得する

MedalAmountメソッドを追記して、メダルの枚数を取得します。

・Shootスクリプトの修正

メダルを生成出来る条件

メダルの生成条件を追加しました。枚数が0じゃない限り生成出来るようにします。

これで、ゲームを実行して0枚になった際にクリックしてもメダルが出現しないかチェックします。

コルーチンを使ってメダルを自動回復するためのスクリプトの修正

所持メダルが0枚になったら、一定時間が経過するたびにメダルを自動回復させます。

というわけで、再びMedalManagerスクリプトを修正します。

ちょっと長くなったのでそのままコードを貼り付けました。

Updateメソッドでメダルの枚数をチェックして、0枚になったらコルーチンを発動します。

10秒間のカウントダウンを行い、メダルを30枚にしています。この10秒はいわばコンテニュータイムとでもいったところでしょうか。

メダルが30枚になった時には、52行目の条件にも一致しないので再びメダルが0枚になるまではゲームが出来るようになります。

ゲームオーバーではないけれでも、実質ゲームオーバーですよという意味にもなりますね。