【Unity】Unityで3D野球盤をつくろう日記 23日目:制限時間が過ぎたらゲームを止める(BGMとボール撃ち出しをScriptから制御)

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

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

長らく更新をストップしていたが、久しぶりに進める。今の状態だと、制限時間が過ぎてもゲームが終わらず、そのまま続いてしまう。制限時間が「0」になったらゲームが終了するようにしたい。ゲームを終了する、といっても色々な処理が考えられる。最終的には、終了した後にゲーム終了画面に遷移するようにしたいが、今回はまずBGMやボールの撃ち出しを停止させてみる。まずはCountDownTimer.csを改造して、gameTimerIntをpublic staticにして、別のscriptから触れるようにする。

https://gist.github.com/WakkyFree/bac46e19599dbd73790d2b4afd5bd10d/5944a9829a3e267d88d94d73cef6c3fc7c2c2967

何でもかんでもpublicにするのはちょっとどうかなとも思うけど、とりあえず思いついた方法でやってみる。次に、ShootBall.csのUpdateの中に以下を追加して、カウントが0になったらボールの撃ち出しをストップする。

if(CountDownTimer.gameTimerInt == 0) {
shootSwitch = false;
}

https://gist.github.com/WakkyFree/7e4fcf8d195d8e5c6c48ec748dc8b34d/cc22af185a80ac1f98672e60841d34a91d63edc9

また、BGMを停止するため、新たにScriptを追加した。

https://gist.github.com/WakkyFree/212393c78f04b3a112631b69851ca216/2a569082dcf91e76db2a832a4236b07b277ae129

Audioの停止については以下を参考にした。

https://docs.unity3d.com/jp/current/ScriptReference/AudioSource.Stop.html

後はこのScriptをBGMオブジェクトに追加するだけ。

とりあえず今回はここまで。いきなりゲーム画面を遷移させるのも味気ないので、次は「ゲーム終了」のような文字を画面上に表示させてみようと思う。


投稿者: wakky

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

コメントを残す

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

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